304 Vec2 origin = Director::getInstance()->getVisibleOrigin();
305 Size size = Director::getInstance()->getVisibleSize();
307 auto sprite1 = Sprite::create(
"Images/CyanSquare.png");
308 sprite1->setPosition(origin+Vec2(size.width/2, size.height/2));
309 addChild(sprite1, 10);
312 auto listener1 = EventListenerTouchOneByOne::create();
313 listener1->setSwallowTouches(
true);
314 setUserObject(listener1);
316 std::shared_ptr<bool> firstClick(
new bool(
true));
318 listener1->onTouchBegan = [=](Touch* touch, Event* event){
319 Vec2 locationInNode = sprite1->convertToNodeSpace(touch->getLocation());
320 Size s = sprite1->getContentSize();
321 Rect rect = Rect(0, 0, s.width, s.height);
323 if (rect.containsPoint(locationInNode))
325 sprite1->setColor(Color3B::RED);
331 listener1->onTouchEnded = [=](Touch* touch, Event* event){
332 sprite1->setColor(Color3B::WHITE);
335 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, sprite1);
337 auto statusLabel = Label::createWithSystemFont(
"The sprite could be touched!",
"", 20);
338 statusLabel->setPosition(origin + Vec2(size.width/2, size.height-90));
339 addChild(statusLabel);
340 std::shared_ptr<bool> enable(
new bool(
true));
342 auto toggleItem = MenuItemToggle::createWithCallback([=](Ref* sender){
345 _eventDispatcher->removeEventListener(listener1);
346 statusLabel->setString(
"The sprite could not be touched!");
352 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, sprite1);
353 statusLabel->setString(
"The sprite could be touched!");
357 }, MenuItemFont::create(
"Enabled"), MenuItemFont::create(
"Disabled"),
nullptr);
359 toggleItem->setPosition(origin + Vec2(size.width/2, 80.0f));
360 auto menu = Menu::create(toggleItem,
nullptr);
361 menu->setPosition(Vec2(0.0f, 0.0f));
362 menu->setAnchorPoint(Vec2(0.0f, 0.0f));
virtual void onEnter() override