cocos2dx 中Layer的setTouchEnabled已经被淘汰,取而代之的是用户自己设定监听器。
auto listener = EventListenerTouchAllAtOnce::create();
listener->onTouchesBegan = [&](const std::vector<Touch*>& touches, Event *unused_event)
{
...
};
listener->onTouchesMoved = [&](const std::vector<Touch*>& touches, Event *unused_event)
{
...
};
listener->onTouchesEnded = [&](const std::vector<Touch*>& touches, Event *unused_event)
{
...
};
listener->onTouchesCancelled = [&](const std::vector<Touch*>& touches, Event *unused_event)
{
...
};
director->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
其中EventListenerTouchAllAtOnce表示多点触摸监听器;EventListenerTouchOneByOne表示单点触摸监听器。
最后,在director的时间分发器中添加(注册)一下这个监听器就好了。