CCEventListener.cpp - 尝试实现触摸功能时断言失败

时间:2014-07-29 10:05:14

标签: c++ cocos2d-x

我正在摆弄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语句之前取消注释该行,它可以正常运行而不会崩溃,但触摸不起作用。

1 个答案:

答案 0 :(得分:2)

看来你实际上必须实现所有的onTouch *回调。我添加了这两个,它开始工作。

listener->onTouchBegan = [&](Touch* touch, Event* event)
{
    return true;
};

listener->onTouchEnded = [=](Touch* touch, Event* event)
{

};