'Programming/cocos2d-x'에 해당되는 글 3건

  1. Vec2 ? Point? 2015/12/13
  2. Check items in cocos2d-x, Part 2 2015/12/10
  3. Check items in cocos2d-x 2015/12/07

Vec2 ? Point?

from Programming/cocos2d-x 2015/12/13 17:29
Point was refactored to Vector2 and then Vec2.
However, Point was already wide-spread, it was typedef-ed to Point in Vec2.h

2015/12/13 17:29 2015/12/13 17:29
Using camera
auto s= Director::getInstance()->getWinSize();
auto camera= Camera::createPerspective(60, (GLfloat)s.width/s.height, 1, 1000);

// set parameters for camera
camera->setPosition3D(Vec3(0, 100, 100));
camera->lookAt(Vec3(0, 0, 0), Vec3(0, 1, 0));

addChild(camera); // add camera to the scene
Creating orthogonal camera
auto s= Director::getInstance()->getWinSize();
auto camera= Camera::createOrthographic(s.width, s.height, 1, 1000);
Hide objects from camera
// camera

// node
2015/12/10 17:28 2015/12/10 17:28
Polygon Sprite and AutoPolygon
Check performance between normal sprite and polygon sprite (area to draw vs. function call count)
auto pinfo= AutoPolygon::generatePolygon("filename.png");
auto spp= Sprite::create(pinfo);
Touch event handling
#include "ui/CocosGUI.h"

auto loadingBar= LoadingBar::create("LoadingBarFile.png");
// set the direction of the loading bars progress


// something happened, change the percentage of the loading bar

// more things happened, change the percentage again
#include "ui/CocosGUI.h"

auto textField= TextField::create("", "Arial", 30);

textField->addTouchEventListener([&](Ref* sender, Widget::TouchEventType type) {
  std::cout << "editing a TextField" << std::endl;

// make this TextField password enabled

// set the maximum number of characters the user can enter for this TextField

// create ParallaxNode
auto paraNode= ParallaxNode::create();

// background image is moved at a ratio of 0.4x, 0.5y
paraNode->addChild(background, -1, Vec2(0.4f, 0.5f), Vec2::ZERO);

// tiles are moved at a ratio of 2.2x, 1.0y
paraNode->addChild(middle_layer, 1, Vec2(2.2f, 1.0f), Vec2(0, -200));

// top image is moved at a ratio of 3.0x, 2.5y
paraNode->addChild(top_layer, 2, Vec2(3.0f, 2.5f), Vec2(200, 800));
5 types of event listeners
  1. EventListenerTouch - responds to touch events
  2. EventListenerKeyboard - responds to keyboard events
  3. EventListenerAcceleration - responds to accelerometer events
  4. EventListenerMouse - responds to mouse events
  5. EventListenerCustom - responds to custom events
  • A node of a lower value of FixedPriority receives events before nodes with higher values
  • SceneGraphPriority is a pointer to a Node. Event listeners with higher z-order values receives events before event listeners have lower z-order values.
Touch Events
// Create a "one by one" touch event listener
// (processes one touch at a time)
auto listener1= EventListenerTouchOneByOne::create();

// When "swallow touches" is true, then returning 'true' from the
// onTouchBegan method will "swallow" the touch event, preventing
// other listeners from using it

// trigger when you push down
listener1->onTouchBegan= [](Touch* touch, Event* event) {
  // your code
  return true; // if you are consuming it

// trigger when moving touch
listener1->onTouchMoved= [](Touch* touch, Event* event) {
  // your code

// trigger when you let up
listener1->onTouchEnded= [=](Touch* touch, Event* event) {
  // your code

// Add listener
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, this);
2015/12/07 10:29 2015/12/07 10:29