Cocos2dx 关于层的屏蔽

当我们在用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)

    {

    }

时间: 2024-12-15 01:39:21

Cocos2dx 关于层的屏蔽的相关文章

cocos2dx 遮罩层 android 手机上 失败

1.CCClippingNode使用(在模拟器上ok,在手机上不行),实现多个剪切区域 local layer=CCLayerColor:create(ccc4(0,0,0,110)) --/*创建剪裁节点*/ local pClip=CCClippingNode:create() pClip:setInverted(true)--;//设置是否反向,将决定画出来的圆是透明的还是黑色的 pClip:setAlphaThreshold(0.0) self:addChild(pClip) --/*注

(16)Cocos2d-x 多分辨率适配完全解析

Overview 从Cocos2d-x 2.0.4开始,Cocos2d-x提出了自己的多分辨率支持方案,废弃了之前的retina相关设置接口,提出了design resolution概念. 3.0中有以下相关接口: Director::getInstance()->getOpenGLView()->setDesignResolutionSize() //设计分辨率大小及模式 Director::getInstance()->setContentScaleFactor() //内容缩放因子

【Cocos2d-x 017】 多分辨率适配全然解析

转:http://blog.csdn.net/w18767104183/article/details/22668739 文件夹从Cocos2d-x 2.0.4開始,Cocos2d-x提出了自己的多分辨率支持方案.废弃了之前的retina相关设置接口,提出了design resolution概念. <ol class="linenums" style="margin: 0px; padding-left: 27px;"><li value=&quo

Cocos2d-x从入门到精通第五课《Cocos2d-x中的Node》

Cocos2d-x中的Node 视频教程地址:http://edu.csdn.net/course/detail/1342/20983?auto_start=1 一.什么是结点 在介绍Cocos2d-x的结点系统之前,我们需要首先做一些启蒙,什么是树? 定义:   一棵树(tree)是由n(n>0)个元素组成的有限集合,其中: (1)每个元素称为结点(node): (2)有一个特定的结点,称为根结点或根(root): (3)除根结点外,其余结点被分成m(m>=0)个互不相交的有限集合,而每个子

Service层和DTO层的作用

Service层主要提供的几个作用:1.将业务逻辑层进行封装,对外提供业务服务调用.2.通过外观模式,屏蔽业务逻辑内部方法.3.降低业务逻辑层与UI层的依赖,业务逻辑接口或实现的变化不会影像UI层.4.降低UI层调用的请求次数及数据往返. DTO层主要提供的作用: 在上面的结构中,我们说了Service层的作用,目前还少加入了一层,DTO(数据传输对象层),该层负责屏蔽后端的实体层,将UI层需要的数据进行重新的定义和封装,在实际的业务场景下,后端实现或存储的数据远比用户需要的数据要庞大和复杂,所

云计算背后的秘密:NoSQL诞生的原因和优缺点

转载收藏一篇对nosql讲解的比较全面的文章:http://blog.csdn.net/xlgen157387/article/details/47908797 这篇文章将和大家聊聊为什么NoSQL会在关系型数据库已经非常普及的情况下异军突起? 诞生的原因 随着互联网的不断发展,各种类型的应用层出不穷,所以导致在这个云计算的时代,对技术提出了更多的需求,主要体现在下面这四个方面: 1. 低延迟的读写速度:应用快速地反应能极大地提升用户的满意度; 2. 支撑海量的数据和流量:对于搜索这样大型应用而

大并发大数量中的MYSQL瓶颈与NOSQL介绍

NoSQL在2010年风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面.今年伊始,InfoQ中文站有幸邀请到凤凰网的孙立先生,为大家分享他之于NoSQL方面的经验和体会. 非 常荣幸能受邀在InfoQ开辟这样一个关于NoSQL的专栏,InfoQ是我非常尊重的一家技术媒体,同时我也希望借助InfoQ,在国内推动NoSQL 的发展,希望跟我一样有兴趣的朋友加入进来.这次的NoSQL专栏系列将先整体介绍NoSQL,然后介绍如何把NoSQL运用到自

Overview

从Cocos2d-x 2.0.4开始,Cocos2d-x提出了自己的多分辨率支持方案,废弃了之前的retina相关设置接口,提出了design resolution概念. 3.0中有以下相关接口: Director::getInstance()->getOpenGLView()->setDesignResolutionSize() //设计分辨率大小及模式 Director::getInstance()->setContentScaleFactor() //内容缩放因子 FileUtil

NoSQL开篇——为什么要使用NoSQL

NoSQL概念 随着web2.0的快速发展,非关系型.分布式数据存储得到了快速的发展,它们不保证关系数据的ACID特性.NoSQL概念在2009年被提了出来.NoSQL最常见的解释是"non-relational","Not Only SQL"也被很多人接受.("NoSQL"一词最早于1998年被用于一个轻量级的关系数据库的名字.) NoSQL被我们用得最多的当数key-value存储,当然还有其他的文档型的.列存储.图型数据库.xml数据库等.