首页 > 代码库 > Cocos2dx 关于层的屏蔽
Cocos2dx 关于层的屏蔽
当我们在用cocos2d-x引擎进行游戏设计时,很多时候有这样一种情况
我们需要创建一个层A,覆盖住层B,当我们在层A上进行触摸操作时,可能会对层B进行操作。所以我们需要做的是
当层A覆盖住层B时,屏蔽层B的touch事件
摘自某文章
layer屏蔽touch事件
此处有个问题,在popLayer层上触摸,你会发现底层的GameScene会响应。这就需要对popLayer进行touch事件处理屏蔽,不应该传递到底层。
在inin方法中注册touch事件监听
12345678//设置触摸事件监听
auto touchListener = EventListenerTouchOneByOne::create();
touchListener->onTouchBegan = CC_CALLBACK_2(PopLayer::onTouchBegan,
this
);
touchListener->onTouchMoved = CC_CALLBACK_2(PopLayer::onTouchMoved,
this
);
touchListener->onTouchEnded = CC_CALLBACK_2(PopLayer::onTouchEnded,
this
);
_eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener,
this
);
// 设置是否吞没事件,在 onTouchBegan 方法返回 true 时吞没
touchListener->setSwallowTouches(
true
);
空实现touch事件的监听函数
12345678910bool
GameOverLayer::onTouchBegan(Touch* touch, Event* event)
{
return
true
;
}
void
GameOverLayer::onTouchMoved(Touch* touch, Event* event)
{
}
void
GameOverLayer::onTouchEnded(Touch* touch, Event* event)
{
}
Cocos2dx 关于层的屏蔽
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。