203 Vec2 origin = Director::getInstance()->getVisibleOrigin();
204 Size size = Director::getInstance()->getVisibleSize();
206 auto containerForSprite1 = Node::create();
207 auto sprite1 = cocos2d::ui::Scale9Sprite::create(
"Images/CyanSquare.png");
208 sprite1->setPosition(origin+Vec2(size.width/2, size.height/2) + Vec2(-80.0f, 80.0f));
209 containerForSprite1->addChild(sprite1);
210 addChild(containerForSprite1, 10);
212 auto sprite2 = ui::Scale9Sprite::create(
"Images/MagentaSquare.png");
213 sprite2->setPosition(origin+Vec2(size.width/2, size.height/2));
216 addChild(sprite2, 20);
218 auto sprite3 = ui::Scale9Sprite::create(
"Images/YellowSquare.png");
219 sprite3->setPosition(Vec2(0.0f, 0.0f));
220 sprite3->setCascadeOpacityEnabled(
false);
221 sprite2->addChild(sprite3, 1);
225 auto listener1 = EventListenerTouchOneByOne::create();
226 listener1->setSwallowTouches(
true);
228 listener1->onTouchBegan = [](Touch* touch, Event* event){
229 auto target =
static_cast<Sprite*
>(
event->getCurrentTarget());
231 Vec2 locationInNode = target->convertToNodeSpace(touch->getLocation());
232 Size s = target->getContentSize();
233 Rect rect = Rect(0, 0, s.width, s.height);
235 if (rect.containsPoint(locationInNode))
237 log(
"sprite began... x = %f, y = %f", locationInNode.x, locationInNode.y);
238 target->setOpacity(180);
244 listener1->onTouchMoved = [](Touch* touch, Event* event){
245 auto target =
static_cast<Sprite*
>(
event->getCurrentTarget());
246 target->setPosition(target->getPosition() + touch->getDelta());
249 listener1->onTouchEnded = [=](Touch* touch, Event* event){
250 auto target =
static_cast<ui::Scale9Sprite*
>(
event->getCurrentTarget());
251 log(
"sprite onTouchesEnded.. ");
252 target->setOpacity(255);
253 if (target == sprite2)
255 containerForSprite1->setLocalZOrder(100);
257 else if(target == sprite1)
259 containerForSprite1->setLocalZOrder(0);
263 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, sprite1);
264 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(), sprite2);
265 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(), sprite3);
virtual bool init() override