我使用cocos2d-x 3.0 RC1,我需要以下内容:最顶层应该获取所有事件,并且不应该将事件传播到最顶层下面的层。我不知道如何做到这一点。我试图找出setTouchEnabled
和setSwallowTouches
但结果为null的内容。
请帮忙。这非常重要。
答案 0 :(得分:0)
我找到的唯一方法是实现这个:
auto m_touchListenerOneByOne = EventListenerTouchOneByOne::create();
m_touchListenerOneByOne->setSwallowTouches(true);
m_touchListenerOneByOne->onTouchBegan = CC_CALLBACK_2(IntroView::onBoardTouchBegan, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(m_touchListenerOneByOne, this);
我在图层的init方法中编写的代码。还有这个:
bool IntroView::onBoardTouchBegan(Touch* touch, Event* event)
{
CCLOG("AAAAAAAAA!");
return true;
};
当您在onBoardTouchBegan
中返回true时,您“消耗”触摸,否则如果图层不消耗触摸,则这些触摸会按优先级传递到下一层。