代码之家  ›  专栏  ›  技术社区  ›  armnotstrong

在cocos2dx的ontouchbegind()中,返回布尔是什么意思

  •  -2
  • armnotstrong  · 技术社区  · 8 年前

    onTouchBegan() 而不是 onTouchMoved() onTouchEnded()

    auto listener = EventListenerTouchOneByOne::create();
    
    listener->onTouchBegan = [=](Touch *touch, Event *event) {
        CCLOG("on touch begain at (%f,%f)", touch->getLocation().x, touch->getLocation().y);
        return false; // this will make following two events couldn't be fired.
    };
    listener->onTouchMoved = [=](Touch *touch, Event *event) {
        CCLOG("on touch moved at (%f, %f)", touch->getLocation().x, touch->getLocation().y);
    };
    
    listener->onTouchEnded = [=](Touch *touch, Event * event) {
        CCLOG("on touch ended at (%f,%f)", touch->getLocation().x, touch->getLocation().y);
    };
    
    _eventDispatcher->addEventListenerWithFixedPriority(listener, 1);
    

    发生这种情况的原因是 onTouchBegan false 将此更改为后 true , onTouchMoved onTouchEnded

    我四处搜索,可以找到任何关于这个返回标志打算做什么的解释吗?有人能解释一下吗?

    1 回复  |  直到 8 年前
        1
  •  3
  •   Tomas Dittmann    8 年前

    文档没有说明这一点,但 programmers-guide 做:

    // trigger when you push down
    listener1->onTouchBegan = [](Touch* touch, Event* event)
    {
        // your code
        return true; // if you are consuming it
    };
    

    [] 而不是 [=]