我使用 cocos2d-x 3.0 RC1,我需要以下内容:最顶层应该获取所有事件,并且不应将事件传播到最顶层以下的层。我不知道我该怎么做。我试图找出结果为空的setTouchEnabled
东西setSwallowTouches
。
请帮忙。这个非常重要。
我使用 cocos2d-x 3.0 RC1,我需要以下内容:最顶层应该获取所有事件,并且不应将事件传播到最顶层以下的层。我不知道我该怎么做。我试图找出结果为空的setTouchEnabled
东西setSwallowTouches
。
请帮忙。这个非常重要。
我发现的唯一方法是实现这一点:
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 时,否则如果层不消费触摸,则这些触摸将按优先级传递到下一层。