cocos2d-x 遮罩层

项目中遇到的小问题,如何在弹窗时设置固定背景的遮罩层,我分为了三个步骤:
1、将需要的背景(也就是我们要用到的遮罩层)添加到当前图层的顶层,并设置不可见;
2、弹窗发生前设置遮罩层可见,为其添加触摸监听事件,设置吞噬属性

layout_mask->setVisible(true);
auto listener = EventListenerTouchOneByOne::create();
listener->setSwallowTouches(true);
listener->onTouchBegan = [](Touch* t, Event* e){ return true; };
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, layout_mask);

3、弹窗关闭前设置遮罩层不可见,移除监听事件

layout_mask->setVisible(false);
Director::getInstance()->getEventDispatcher()->removeEventListenersForTarget(layout_mask, true);

猜你喜欢

转载自blog.csdn.net/pgr_zouxin/article/details/50478617