cocos2d-x 3.0 事件处理
參考文章:
star特530的CSDN博客:http://blog.csdn.net/star530/article/details/18325493
https://github.com/chukong/cocos-docs/blob/master/manual/framework/native/v3/event-dispatcher/zh.md
Size visibleSize = Director::getInstance()->getVisibleSize();Point origin = Director::getInstance()->getVisibleOrigin();auto sprite = Sprite::create("CloseNormal.png");sprite->setPosition(origin + Point(visibleSize.width / 2, visibleSize.height / 2) + Point(-80, 80));addChild(sprite, 1);auto sprite2 = Sprite::create("CloseNormal.png");sprite2->setPosition(100, 100);addChild(sprite2, 1);auto listener1 = EventListenerTouchOneByOne::create(); //创建一个触摸监听listener1->setSwallowTouches(false);//用lambda表达式listener1->onTouchBegan = [](Touch *touch, Event *event){auto target = static_cast<Sprite*>(event->getCurrentTarget()); //获取当前触摸的目标auto locationInNode = target->convertToNodeSpace(touch->getLocation()); //target相对于触摸点的坐标位置auto s = target->getContentSize(); //目标的矩形大小,逻辑尺寸,不是像素auto rect = Rect(0, 0, s.width, s.height);//推断触摸点是否在目标的范围内if (rect.containsPoint(locationInNode)){return true;}return false;//要推断触摸点是否在目标的范围内,能够用第二种方法。程序在上面部分就已经返回,这部分不会运行//getBoundingBox()if (event->getCurrentTarget()->getBoundingBox().containsPoint(touch->getLocation()))return true;return false;};能够用cocos2d-x的回调函数方式//listener1->onTouchBegan = CC_CALLBACK_2(HelloWorldScene::onTouchBegan, this);或者用std::bind//listener1->onTouchBegan = std::bind(&HelloWorldScene::onTouchBegan, this, placeholders::_1, placeholders::_2);再或者std::function//std::function<bool(Touch*, Event*)> func = [](Touch *touch, Event *event){// //省略代码//};//listener1->onTouchBegan = func;listener1->onTouchMoved = [](Touch *touch, Event *event){auto target = static_cast<Sprite*>(event->getCurrentTarget());target->setPosition(target->getPosition() + touch->getDelta());};//将触摸监听加入�到_eventDispatcher,sprite这个參数应该是表示event->getCurrentTarget()这个目标//假设有另外一个sprite2,假设这里用的是sprite2,那么移动的就是sprite2//假设同一时候有sprite和sprite2,这里用的是this,那么移动的是整个layer,也就是说sprite和sprite2是同一时候移动的_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, sprite);//有多个sprite想都能够移动, 用clone()_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(), sprite2);
转载于:https://www.cnblogs.com/hrhguanli/p/3775890.html
cocos2d-x 3.0 事件处理相关推荐
- 如何制作一个横版格斗过关游戏 Cocos2d x 2 0 4
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文实践 ...
- 图文并茂使用CocosBuilder制作Cocos2D游戏 分享0
图文并茂使用CocosBuilder制作Cocos2D游戏 分享0 目 录 The Game 设置工程 创建动画类型的主界面 本文由Zynga 工程师原创,翻译:Iven,张作宸,Butterfly ...
- Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(八)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 回到Xcode中,新建一个EndLayer类,继承于CCNode ...
- 如何制作一个横版格斗过关游戏 2 Cocos2d x 2 0 4
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 在第一篇 ...
- 如何制作一个塔防游戏 Cocos2d x 2 0 4
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文实践 ...
- 如何制作一个简单的游戏 Cocos2d x 2 0 4
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文实践 ...
- Cocos2d x 2 0 从HelloWorld入手
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 从上一篇 ...
- cocos2d-x3.0中数据类型vector,map、value
在3.0中,已经不再使用以前的ccarray,ccdictionary,ccint等从以前的oc继承过来的数据类型,转而加入了自己的数据结构,更加符合c++的开发习惯和思考模式,其中就包括了vecto ...
- cocos2d:如何制作一个横版格斗过关游戏 Cocos2d-x 2.0.4
转载于:http://blog.csdn.net/akof1314/article/details/8549150 本文实践自 Allen Tan 的文章<How To Make A Side- ...
最新文章
- Spring-Boot快速搭建web项目详细总结
- 在IE6/7下表格td标签没有内容时不显示边框?
- es mysql 预处理_数据库选型之MySQL vs ElasticSearch
- delphi 运行外部程序函数winexec WinExecAndWait32 CreateProcess
- FPGA是如何搭建的
- java double精确比较,Java float比double更精确?
- linux父进程循环,LINUX C 父进程建立多个子进程循环非堵塞回收列子
- 裁员之后人手却不够,马斯克和母亲只好亲自上阵帮忙了
- 吴恩达机器学习训练2:Logistic回归
- WebAssembly 将成为互联网的终结?
- 蓝桥杯-基础练习 十六进制转八进制
- jquery mysql jsp_jsp+jquery+mysql实现的一个简单的学生管理系统
- [Java]进程与线程的区别(转)
- python爬取贴吧网页信息
- 圆圈头像制作css,通过CSS3实现圆形头像显示
- APIO2019 打铁记
- 电脑知识:电脑老是黑屏怎么解决?
- Spring框架基础入门
- the security of smart contract- 2
- Microsoft.Office.Interop.Word通过模板生成文档出现的问题经验总结
热门文章
- ajax获取的json作用域,ajax;jsonp;箭头函数;let关键字;const关键字
- python画正方形的代码drawingpanel_wxpython编程之 画板(一个不错的研究的完整示例)...
- arraylist扩容是创建新数组吗 java_Java 基础数据结构分析
- matlab中sum(w.),matlab中sum
- 音乐编辑 java_求助 关于java编辑音乐
- oracle数据库图书,基于oracle数据库,创建图书表(一)
- php移除所有子节点,jQuery删除/清空指定元素下的所有子节点的方法
- java处理报错的快捷键_java快捷键
- java中如何引用非静态变量_java为什么不能从静态环境引用非静态变量?
- 怎么让队友变成绿色的名字_“吃鸡”进入游戏后,发现队友在玩手机,他到底是怎么做到的?...