Надеюсь, это поможет прояснить …
Я следовал за ClicktoMove Test в cpp-тестах из версии cocos2dx -3.
Всякий раз, когда я нажимаю на экран, я получаю
Утверждение не удалось!
……
Файл: CCLayer.cpp
Line: 337
Выражение: Ложное
ОБНОВИТЬ!
Я скачал последнюю версию, как указано в журнале изменений «cocos2d-x-3.0 Apr.23 2014».
и это решает проблему, и все методы, которые я здесь упомянул, работают. В любом случае, спасибо GameDeveloper.
Я бы изменил ваше использование onTounchBegan
а также onTouchEnded
поскольку это были функции Cocos2d v2 для реализации сенсорных событий.
Как насчет чего-то вроде этого:
auto e=EventListenerTouchOneByOne::create();
e->setSwallowTouches(true);
e->onTouchBegan = [&](cocos2d::Touch* touch, cocos2d::Event* event)
{
return true;
};
e->onTouchEnded = [=](cocos2d::Touch* touch, cocos2d::Event* event)
{
GameLayer::touchEvent(touch);
};
cocos2d::Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(e,this);
void GameLayer::touchEvent(Touch* touch)
{
std::cout << "touch event" << std::endl;
}