73 Vec2 origin = Director::getInstance()->getVisibleOrigin();
74 Size size = Director::getInstance()->getVisibleSize();
76 auto containerForSprite1 = Node::create();
77 auto sprite1 = Sprite::create(
"Images/CyanSquare.png");
78 sprite1->setPosition(origin+Vec2(size.width/2, size.height/2) + Vec2(-80.0f, 80.0f));
79 containerForSprite1->addChild(sprite1);
80 addChild(containerForSprite1, 10);
82 auto sprite2 = Sprite::create(
"Images/MagentaSquare.png");
83 sprite2->setPosition(origin+Vec2(size.width/2, size.height/2));
84 addChild(sprite2, 20);
86 auto sprite3 = Sprite::create(
"Images/YellowSquare.png");
87 sprite3->setPosition(Vec2(0, 0));
88 sprite2->addChild(sprite3, 1);
91 auto listener1 = EventListenerTouchOneByOne::create();
92 listener1->setSwallowTouches(
true);
94 listener1->onTouchBegan = [](Touch* touch, Event* event){
95 auto target =
static_cast<Sprite*
>(
event->getCurrentTarget());
97 Vec2 locationInNode = target->convertToNodeSpace(touch->getLocation());
98 Size s = target->getContentSize();
99 Rect rect = Rect(0, 0, s.width, s.height);
101 if (rect.containsPoint(locationInNode))
103 log(
"sprite began... x = %f, y = %f", locationInNode.x, locationInNode.y);
104 target->setOpacity(180);
110 listener1->onTouchMoved = [](Touch* touch, Event* event){
111 auto target =
static_cast<Sprite*
>(
event->getCurrentTarget());
112 target->setPosition(target->getPosition() + touch->getDelta());
115 listener1->onTouchEnded = [=](Touch* touch, Event* event){
116 auto target =
static_cast<Sprite*
>(
event->getCurrentTarget());
117 log(
"sprite onTouchesEnded.. ");
118 target->setOpacity(255);
119 if (target == sprite2)
121 containerForSprite1->setLocalZOrder(100);
123 else if(target == sprite1)
125 containerForSprite1->setLocalZOrder(0);
129 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, sprite1);
130 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(), sprite2);
131 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(), sprite3);
134 auto removeAllTouchItem = MenuItemFont::create(
"Remove All Touch Listeners", [
this](Ref* sender){
135 auto senderItem =
static_cast<MenuItemFont*
>(sender);
136 senderItem->setString(
"Only Next item could be clicked");
138 _eventDispatcher->removeEventListenersForType(EventListener::Type::TOUCH_ONE_BY_ONE);
140 auto nextItem = MenuItemFont::create(
"Next", [=](Ref* sender){
144 nextItem->setFontSizeObj(16);
147 auto menu2 = Menu::create(nextItem,
nullptr);
148 menu2->setPosition(Vec2(0, 0));
149 menu2->setAnchorPoint(Vec2(0, 0));
150 this->addChild(menu2);
153 removeAllTouchItem->setFontSizeObj(16);
156 auto menu = Menu::create(removeAllTouchItem,
nullptr);
157 menu->setPosition(Vec2(0, 0));
158 menu->setAnchorPoint(Vec2(0, 0));
TestSuite * getTestSuite() const
virtual void onEnter() override
virtual void enterNextTest()
static cocos2d::Vec2 right()