我正在摆弄 Cocos2D-X 并尝试按照 this wiki entry 实现触摸功能。但是,当我尝试运行代码时,它会启动并弹出一个对话框,显示“断言失败!”给出原因“CCEventListenerTouch.cpp,行:89,表达式:false”。
这是我与此相关的代码:
bool MainLayer::init()
{
Sprite* tile = Sprite::create("tile.png");
this->addChild(tile);
auto listener = EventListenerTouchOneByOne::create();
listener->setSwallowTouches(true);
listener->onTouchMoved = [](Touch* touch, Event* event)
{
tile->setPosition(tile->getPosition() + touch->getDelta());
};
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, tile);
return true;
}
如果我取消注释 return
语句之前的行,它可以正常工作而不会崩溃,但触摸不起作用。
最佳答案
看来您实际上必须实现所有 onTouch* 回调。我添加了这两个并且它开始工作。
listener->onTouchBegan = [&](Touch* touch, Event* event)
{
return true;
};
listener->onTouchEnded = [=](Touch* touch, Event* event)
{
};
关于c++ - CCEventListener.cpp - 尝试实现触摸功能时断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25012773/