现在只想让精灵,接收点击 listener事件。
下面是处理代码:
开发环境:
win8
vs2012
cocos2d-x 3.0 alpha1
在使用 回调方法] 方式 及 方式 结果都是一样的, 在精灵区域外的地方,也能收到点击事件。
// add your codes below…
auto player = Sprite::create(“Player.png”, Rect(0, 0, 27, 40) );
player->setPosition(Point(origin.x + player->getContentSize().width/2,
origin.y + visibleSize.height/2) );
this->addChild(player, 1, 10);
auto dispatcherPlay = Director::getInstance()->getEventDispatcher();
auto listenerPlay = EventListenerTouchAllAtOnce::create();
// 事件处理 回调方法] 方式
listenerPlay->onTouchesMoved = CC_CALLBACK_2(HelloWorld::onPlayerTouchesMoved, this);
// 事件处理 方式
// listenerPlay->onTouchesMoved = ](const std::vector<Touch*>& touches, Event unused_event){
// log(“Player to move”);
// Touch touch = touches;
// auto player = static_cast<Sprite*>(unused_event->getCurrentTarget());
// player->setPosition(player->getPosition()+touch->getDelta());
// };
dispatcherPlay->addEventListenerWithSceneGraphPriority(listenerPlay, player);