码迷,mamicode.com
首页 > 其他好文 > 详细

Cocos2dx 关于层的屏蔽

时间:2014-09-03 21:22:27      阅读:501      评论:0      收藏:0      [点我收藏+]

标签:style   color   os   io   ar   div   问题   sp   on   

    当我们在用cocos2d-x引擎进行游戏设计时,很多时候有这样一种情况

             我们需要创建一个层A,覆盖住层B,当我们在层A上进行触摸操作时,可能会对层B进行操作。所以我们需要做的是

当层A覆盖住层B时,屏蔽层B的touch事件


摘自某文章

layer屏蔽touch事件

此处有个问题,在popLayer层上触摸,你会发现底层的GameScene会响应。这就需要对popLayer进行touch事件处理屏蔽,不应该传递到底层。

  1. 在inin方法中注册touch事件监听

    1
    2
    3
    4
    5
    6
    7
    8
    //设置触摸事件监听
    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);
  2. 空实现touch事件的监听函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    bool GameOverLayer::onTouchBegan(Touch* touch, Event* event)
    {
    return true;
    }
    void GameOverLayer::onTouchMoved(Touch* touch, Event* event)
    {
    }
    void GameOverLayer::onTouchEnded(Touch* touch, Event* event)
    {
    }

Cocos2dx 关于层的屏蔽

标签:style   color   os   io   ar   div   问题   sp   on   

原文地址:http://blog.csdn.net/tingting14054765/article/details/39031999

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!