我正在摆弄Cocos2D-X并尝试按照this wiki entry实现触控功能。但是,当我尝试运行我的代码时,它会启动并弹出一个对话框,说“断言失败!”给出一个原因“CCEventListenerTouch.cpp,Line:89,Expression: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
语句之前取消注释该行,它可以正常运行而不会崩溃,但触摸不起作用。
答案 0 :(得分:2)
看来你实际上必须实现所有的onTouch *回调。我添加了这两个,它开始工作。
listener->onTouchBegan = [&](Touch* touch, Event* event)
{
return true;
};
listener->onTouchEnded = [=](Touch* touch, Event* event)
{
};