cocos2d-x 3.0開始採用C++11,并開始脱离OC风格,在触摸处理上也作出了改变

C++11带来了Lambda表达式(匿名函数),它将简化程序编写,可使代码更清晰易懂

在旧2.x版本号的触摸机制之中,是须要重写相关虚函数

在新的版本号中,触摸机制进行了改动,你能够随时改动事件对象,还能够使用Lammbda表达式(匿名函数),还能够移除监听器等

--------------------------------------------------------

事件监听器:封装您的事件处理代码。

事件调度程序:通知用户事件的监听器。        

事件对象:包括关于事件的信息。

--------------------------------------------------------

创建监听器

    ///创建单击事件监听者   ( EventListenerTouchAllAtOnce  则是多点)
auto touchListener=EventListenerTouchOneByOne::create();
///setSwallowTouches 使当前层的touch事件不会传递给它之下的层
touchListener->setSwallowTouches(true);

事件对象绑定

///Lambda表达式  PS:这里的[=] 代表 截取外部作用域中全部变量,并拷贝一份在函数体中使用,详情能够翻阅其它资料
touchListener->onTouchBegan=[=](Touch* touch, Event* evnet)
{
cocos2d::Point s_PLocation=touch->getLocation();
addSpriteAtArcRandom(s_PLocation);
return true;
}; ///C++11 bind模板函数(事实上也就是CC_CALLBACK_XX宏)
touchListener->onTouchEnded=std::bind(&HelloWorld::onTouchEnded, this,std::placeholders::_1,std::placeholders::_2);
touchListener->onTouchMoved=std::bind(&HelloWorld::onTouchMoved, this,std::placeholders::_1,std::placeholders::_2);

将事件监听器增加调度器中

    auto dispatcher=Director::getInstance()->getEventDispatcher();
///加入事件监听器,并设置优先级,PS:既然有加入,当然有移除(removeEventListeners(指定对象),removeEventListenersForType(指定类型)等),嘿嘿, 比曾经方便了不少
dispatcher->addEventListenerWithFixedPriority(touchListener, 1);

(1)addEventListenerWithSceneGraphPriority:注冊监听事件,监听优先级按绘制顺序来

(2)addEventListenerWithFixedPriority:注冊监听事件,能够设置事件的监听的优先级别

(3)addCustomEventListener:注冊自己定义监听事件,而且监听优先级固定为1

可參考:  http://www.cocos2d-x.org/docs/manual/framework/native/input/event-dispatcher/en

Cocos2d-x3.0触摸的更多相关文章

  1. Cocos2D v2.0至v3.x简洁转换指南(二)

    触摸处理 我们在稍后将完成Cocos2d 3.0中触摸处理的完整教程.而现在最重要的是知道如何去启用触摸处理在你的CCNode中: self.userInteractionEnabled = TRUE ...

  2. 如何在Cocos2D 1.0 中掩饰一个精灵(六)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 掩饰一个精灵:实现代码 打开HelloWorldLayer.m并 ...

  3. 如何在Cocos2D 1.0 中掩饰一个精灵(一)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 原帖来自Ray Wunderlich写的精彩的文章 How To ...

  4. Cocos2D v2.0至v3.x简洁转换指南(三)

    Cocos2D 3.3中的注意事项 如果你在使用Cocos2D 3.3+(是SpriteBuilder 1.3+的一部分)你将不得不替分别的换所有存在的UITouch和UITouchEvent为CCT ...

  5. 如何将各种低版本的discuz版本升级到discuz x3.0

    最近在做discuz改版的项目,遇到了很多问题,相信很多拥有discuz论坛的版主,站长和程序猿在升级或改版discuz的过程中遇到过和我一样的问题,所以我开了一个discuz专栏,为大家讲解一下di ...

  6. cocos2d 2.0和UIKit混合编程, Push CCDirector的时候出现黑屏的天坑

    症状 使用cocos2d 2.0和UIKit混合编程, 有一块用cocos2d编写的小程序, 将CCDirector push到一个UINavigationController里面. 虽然事先在后台初 ...

  7. cocos2d-x3.0创建第一个jsb游戏

    第一步: 最新的cocos2d-x.下载地址https://github.com/cocos2d/cocos2d-x github上最新的引擎,值得注意的是官网上发布的引擎是稳定版.选择哪种就看个人喜 ...

  8. cocos2d 3.0自定义事件答疑解惑

    疑惑一:在事件分发中修改订阅者 ,对于这个的理解. 事件的分发是可以嵌套的,cocos2dx使用_inDispatch来保存当前嵌套的深度,当调用第一个dispatchEvent的时候,_inDisp ...

  9. [iOS UI进阶 - 3.0] 触摸事件的基本处理

    A.需要掌握和练习的 1.介绍事件类型2.通过按钮的事件处理引出view的事件处理3.响应者对象 --> UIResponder --> UIView4.view的拖拽* 实现触摸方法,打 ...

随机推荐

  1. Python的模块调用

    目前运维的Python脚本,是用于同步数据的,分别有n个不同的脚本同步不同的数据,而不同的脚本连接的数据库是一致的,每个脚本都重复写这个数据库连接信息. 这导致测试时,从生产环境切换到测试环境时,需多 ...

  2. ubuntu 文档查看器/gedit查看txt中文乱码问题

    文档查看器界面是中文的,但查看pdf文档只显示英文,中文都空了出来. 用命令: sudo apt-get install poppler-data 解决该问题. gedit查看txt中文乱码问题 打开 ...

  3. HttpWebRequest类与HttpRequest类的区别

    HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所有信息.而HttpWebRequest用于客户端,拼接请求的HTTP报文并发送等. HttpWebR ...

  4. JAVA经典算法40题面向过程

    JAVA经典算法40题 [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分 ...

  5. 基于jQuery左右滑动切换图片代码

    分享一款基于jQuery左右滑动切换图片代码.这是一款基于jQuery实现的左右滑动切换焦点图代码.效果图如下: 在线预览   源码下载 实现的代码: <div class="v_ou ...

  6. 一款基于jquery的侧边栏导航

    之前为大家介绍了好多导航菜单,今天给大家分享一款基于jquery的侧边栏导航.这款导航侧边滑出,适合放在手机网页或webapp.一看下实现的效果图: 在线预览   源码下载 实现的代码. html代码 ...

  7. ASPxGridView常用总结

    目录:一.客户端常用1.常用API2.聚焦行变更事件3.客户端选择多行4.客户端选择行5. 获取选择的行数目6.单击行时,选中行7.通过checkbox 选择行8.选择所有行9.启动编辑框,Conta ...

  8. linux实现防止恶意扫描 PortSentry

    linux实现防止恶意扫描 PortSentry   脚本 open 摘要: 端口做为服务器的大门安全很重要,当服务器运行很多服务时并向外提供服务,为防止有人恶意侦测服务器用途,可使用portsent ...

  9. Quill + Framework 7 移动端无法获取焦点

    Quill 是一个轻量级的富文本编辑器.最近公司项目中需要用到这个东东.使用方法可以直接查看它的官网地址或者Github地址: Github地址:quilljs 官网地址:quill官网 主要说一下用 ...

  10. 获取页面中更新删除传过来的id

    利用uri辅助函数 $id=$this->uri->segment(4); 其中segment(参数)  是表示你要截取获得第几个数据.