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

标签 c++ cocos2d-x

我正在摆弄 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/

相关文章:

java - 如何将cocos2d ValueMap作为HashMap发送给Java?

c++ - 花栗鼠碰撞太软

c++ - 没有明显目标的 std::cout 留在发布的代码中是一件坏事吗?

c++ - c++ 和其他语言有 fiddle 类型的东西吗?

C++如何捕获异常?

c++ - 临时和表达行为

scrollview - Cocos2d-x 按下按钮时滚动 ScrollView

android - Cocos2d-x 3.14 Android崩溃

c++ - 为类重载 C++ 插入运算符 (<<)

c++ - 在 C++ 中为代码执行添加延迟