cocos2dx屏蔽层的制作,防止当前层点击上一层。

前端之家收集整理的这篇文章主要介绍了cocos2dx屏蔽层的制作,防止当前层点击上一层。前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. #ifndef _ShieldLayer_H_
  2. #define _ShieldLayer_H_
  3.  
  4. #include "cocos2d.h"
  5. USING_NS_CC;
  6.  
  7. //////////////////////////////////////////////////////////////////////////
  8. //屏蔽
  9. class ShieldLayer: public Layer
  10. {
  11. public:
  12. CREATE_FUNC(ShieldLayer);
  13. private:
  14. ShieldLayer() {}
  15. ~ShieldLayer() {
  16. mListener->release();
  17. }
  18.  
  19. bool init()
  20. {
  21. do
  22. {
  23. CC_BREAK_IF(!Layer::init());
  24.  
  25. mListener = EventListenerTouchOneByOne::create();//创建一个触摸监听
  26. mListener->onTouchBegan = [](Touch* touch,Event* event) {
  27. log("ShieldLayer");
  28. return true;
  29. };
  30. //mListener->onTouchMoved = [](Touch* touch,Event* event){};
  31. //mListener->onTouchEnded = [](Touch* touch,Event* event){};
  32. mListener->setSwallowTouches(true);
  33. mListener->retain();
  34. setTouchEnabled(true);
  35. return true;
  36. } while (0);
  37. return false;
  38. }
  39.  
  40. public:
  41. void setTouchEnabled(bool value)
  42. {
  43. if (value) {
  44. _eventDispatcher->removeEventListener(mListener);
  45. _eventDispatcher->addEventListenerWithSceneGraPHPriority(mListener,this);
  46. }
  47. else
  48. {
  49. _eventDispatcher->removeEventListener(mListener);
  50. }
  51. }
  52. private:
  53. EventListenerTouchOneByOne* mListener;
  54. };
  55.  
  56. #endif // _ShieldLayer_H_
@H_404_2@ @H_404_2@

只要在当前层上创建该屏蔽层,就可以防止点击到上一层页面

猜你在找的Cocos2d-x相关文章