參考文章:

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 事件处理相关推荐

  1. 如何制作一个横版格斗过关游戏 Cocos2d x 2 0 4

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文实践 ...

  2. 图文并茂使用CocosBuilder制作Cocos2D游戏 分享0

    图文并茂使用CocosBuilder制作Cocos2D游戏  分享0 目 录 The Game 设置工程 创建动画类型的主界面 本文由Zynga 工程师原创,翻译:Iven,张作宸,Butterfly ...

  3. Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(八)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 回到Xcode中,新建一个EndLayer类,继承于CCNode ...

  4. 如何制作一个横版格斗过关游戏 2 Cocos2d x 2 0 4

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 在第一篇 ...

  5. 如何制作一个塔防游戏 Cocos2d x 2 0 4

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文实践 ...

  6. 如何制作一个简单的游戏 Cocos2d x 2 0 4

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文实践 ...

  7. Cocos2d x 2 0 从HelloWorld入手

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 从上一篇 ...

  8. cocos2d-x3.0中数据类型vector,map、value

    在3.0中,已经不再使用以前的ccarray,ccdictionary,ccint等从以前的oc继承过来的数据类型,转而加入了自己的数据结构,更加符合c++的开发习惯和思考模式,其中就包括了vecto ...

  9. cocos2d:如何制作一个横版格斗过关游戏 Cocos2d-x 2.0.4

    转载于:http://blog.csdn.net/akof1314/article/details/8549150 本文实践自 Allen Tan 的文章<How To Make A Side- ...

最新文章

  1. Spring-Boot快速搭建web项目详细总结
  2. 在IE6/7下表格td标签没有内容时不显示边框?
  3. es mysql 预处理_数据库选型之MySQL vs ElasticSearch
  4. delphi 运行外部程序函数winexec WinExecAndWait32 CreateProcess
  5. FPGA是如何搭建的
  6. java double精确比较,Java float比double更精确?
  7. linux父进程循环,LINUX C 父进程建立多个子进程循环非堵塞回收列子
  8. 裁员之后人手却不够,马斯克和母亲只好亲自上阵帮忙了
  9. 吴恩达机器学习训练2:Logistic回归
  10. WebAssembly 将成为互联网的终结?
  11. 蓝桥杯-基础练习 十六进制转八进制
  12. jquery mysql jsp_jsp+jquery+mysql实现的一个简单的学生管理系统
  13. [Java]进程与线程的区别(转)
  14. python爬取贴吧网页信息
  15. 圆圈头像制作css,通过CSS3实现圆形头像显示
  16. APIO2019 打铁记
  17. 电脑知识:电脑老是黑屏怎么解决?
  18. Spring框架基础入门
  19. the security of smart contract- 2
  20. Microsoft.Office.Interop.Word通过模板生成文档出现的问题经验总结

热门文章

  1. ajax获取的json作用域,ajax;jsonp;箭头函数;let关键字;const关键字
  2. python画正方形的代码drawingpanel_wxpython编程之 画板(一个不错的研究的完整示例)...
  3. arraylist扩容是创建新数组吗 java_Java 基础数据结构分析
  4. matlab中sum(w.),matlab中sum
  5. 音乐编辑 java_求助 关于java编辑音乐
  6. oracle数据库图书,基于oracle数据库,创建图书表(一)
  7. php移除所有子节点,jQuery删除/清空指定元素下的所有子节点的方法
  8. java处理报错的快捷键_java快捷键
  9. java中如何引用非静态变量_java为什么不能从静态环境引用非静态变量?
  10. 怎么让队友变成绿色的名字_“吃鸡”进入游戏后,发现队友在玩手机,他到底是怎么做到的?...