什么是层,层在cocos2dx里是一个能处理触摸事件的CCNode,因为它负责用户交互,因此大部分游戏细节都在这个类中完成,所以我们经常派生这个图层来完成逻辑交互代码。当然如果你的图层不需要接受交互信息,那么你可以直接使用CCNode来做图层,效率更高

触摸处理设置:

默认情况下,CCLayer并不接收触摸事件,只有设置了接收触摸事件才能接受触摸

CCLayer::setTouchEnabled(true);

这样Layer就能响应触摸实现了,当触摸开始时

void CCLayer::ccTouchesBegan(CCSet* pTouches, CCEvent* pEvent);被调用

当触摸进行时

void CCLayer::ccTouchesMoved(CCSet* pTouches, CCEvent* pEvent);被调用

当触摸结束时

void CCLayer::ccTouchesEnded(CCSet* pTouches, CCEvent* pEvent);被调用

当触摸过程被打断,比如来电打断了一个触摸事件时

void CCLayer::ccTouchesCancelled(CCSet* pTouches, CCEvent* pEvent);被调用

默认触摸是支持多点触摸的,所以被调用上述虚函数,如果不需要支持多点,只要单点,那么应该设置触摸模式

virtual void setTouchMode(ccTouchesMode mode);

typedef enum {

kCCTouchesAllAtOnce,

kCCTouchesOneByOne,

} ccTouchesMode;

其中kCCTouchesAllAtOnce表示支持多点触摸,kCCTouchesOneByOne表示支持单点触摸,在调用了

setTouchMode(kCCTouchesOneByOne)时,那么调用另外一套虚函数如下:

// default implements are used to call script callback if exist

当触摸开始时,虚函数virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);被调用

当手指移动时,虚函数virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);被调用

当手指离开时,虚函数virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);被调用

当来电打断触摸过程时,虚函数virtual void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);被调用

CCLayer除了支持触摸输入之外,还能支持加速计输入,但是默认也是不支持的,需要增加代码来支持,调用

virtual void setAccelerometerEnabled(bool value);

可以设置加速计输入相应。

这时我们可以重载

virtual void didAccelerate(CCAcceleration* pAccelerationValue);

函数来处理加速计的输入。

转载于:https://www.cnblogs.com/niulanshan/p/6174980.html

cocos2dx中的层CCLayer相关推荐

  1. cocos2d-x中的导演、场景、层和精灵

    场景(Scenes) 场景在cocos2d-x中是CCScene类实现的,是应用程序流中独立的一部分.一个cocos2dx应用程序可以有许多场景,但是在某一时刻,只有一个场景在运行. 比如,你有一个游 ...

  2. Cocos2dx中利用双向链表实现无限循环滚动层

    [Qboy原创] 在Cocos2dX 3.0 中已经实现一些牛逼的滚动层,但是对于有一些需要实现循环滚动的要求确没有实现,笔者在前段时间的一个做了一个游戏,需求是实现在少有的(13个)英雄中进行循环滚 ...

  3. Cocos2d-X中实现菜单特效

    Cocos2d-X中能够讲菜单和动作结合起来使用实现菜单特效 程序实例1:使用菜单和动作的组合实现菜单特效<一> #include "MenuItem.h"CCScen ...

  4. 【深入Cocos2d-x】探索Cocos2d-x中的内存管理-引用计数和自动释放池

    2019独角兽企业重金招聘Python工程师标准>>> #深入Cocos2d-x-探索Cocos2d-x中的内存管理-引用计数和自动释放池 ###引用计数(Reference Cou ...

  5. Cocos2d-X中的ZORDER和Tag

    ZORDER:是描写叙述渲染顺序的值,每一个CCNode都有ZORDER,默认是0 ZORDER越大,越后面绘制 假设ZORDER同样.那么看arrival顺序.先增加的节点先绘制 ZORDER仅仅在 ...

  6. 跟着石头哥哥学cocos2d-x(四)--cocos2dx中的动画以及TexturePacker使用

    2019独角兽企业重金招聘Python工程师标准>>> 之前向Andreas Loew申请了一枚TexturePacker注册码,很快都下来了,作为回报我打算还是写一篇关于Textu ...

  7. Cocos2dx中零散知识点

    cocos2dx中有三种定时器:schedule,scheduleUpdate,scheduleOnce.功能分别是 每隔几秒调用自定义函数.调用系统默认的update()函数.只调用一次自定义函数 ...

  8. cocos2d-x 中创建 CCSprite 精灵动画

    本文原创版权归 博客园 Terry_龙 所有,转载请标明原创作者及出处,以示尊重! 作者:Terry_龙 原文:http://www.cnblogs.com/TerryBlog/archive/201 ...

  9. cocos2dx中的文字显示

    cocos2d-x 中添加显示文字的三种方式 LabelTTF .LabelBMFont 和 LabelAtlas 在 cocos2d-x 中有三个类可以在层或精灵中添加文字: LabelTTF La ...

  10. 在cocos2d-x中使用DragonBones实现骨骼动画

    基础知识 要看懂本文,你需要了解骨骼动画(或称关节动画)是什么,以及DragonBones是什么.下面提供了一些资料: Skeletal Animation (Wikipedia en) Dragon ...

最新文章

  1. c# winforms TextBox的记忆功能
  2. python代码示例下载-python下xml解析库lxml最新版下载安装以及代码示例
  3. PostgreSQL学习笔记9之事务隔离
  4. pg_config executable not found
  5. css中border制作各种形状
  6. [教程]微信官方开源UI库-WeUI使用方法【申明:来源于网络】
  7. ORACLE 11G DATA GUARD配置之配置过程
  8. 服务器维护经验分享,医院IT运维经验分享.pdf
  9. 模拟登录新浪微博(Python)
  10. 【Java_基础】java中static与final关键字的区别
  11. (1) python 将numpy数组导出excel
  12. Dorado7使用常见问题,不定时持续更新。
  13. java 淘口令_简单实现淘口令
  14. 智能建造-钢结构数字应用(附全文PPT)
  15. 浅谈缓存-注解驱动的缓存 Spring cache介绍
  16. ICLR 2020|PairNorm: Tackling Oversmoothing in GNNs
  17. 倍福 BECKHOFF CX9020 是一款适合 DIN 导轨安装的紧凑型以太网控制器,如何做CAN隔离
  18. c语言void delayms,C语言题、谁帮我看看啊!!!!
  19. [SD.TEAM语录]阿翔语录
  20. 官网实例详解-目录和实例简介-keras学习笔记四

热门文章

  1. 【Tensorflow】图像的读取、解码、显示、处理、编码、保存
  2. python反转数字_[蓝桥杯]使用列表反转的回文数(Python代码),数字,利用,取反
  3. php 数组 判断可以吗,php判断一个数组是否为有序
  4. python用正则表达式提取中文_用正则表达式从Python中的字符串中提取数字
  5. 树莓派python蓝牙_怎样通过蓝牙仅使用Android手机为树莓派配置Wi-Fi网络
  6. Linux ubuntu基本知识
  7. 基于SSM的企业工资管理系统
  8. 图标字体化 android,Android 优化 图标文字 iconfont
  9. Apache Server搭建独立图片服务器
  10. MySQL四种事务隔离级的说明