《cocos2d-x游戏开发之旅》学习笔记(二)

前端之家收集整理的这篇文章主要介绍了《cocos2d-x游戏开发之旅》学习笔记(二)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

第5章

5.1.单点触摸的实现

效果


常用的触摸事件有4个:

  • onTouchBegan:触摸事件开始,也就是手指按下时
  • onTouchMoveed:触摸移动事件,也就是手指在屏幕滑动的过程
  • onTouchEnded:触摸事件结束,也就是手指松开时
  • onTouchCancelled:打断触摸事件事件,一般是系统层级的消息,如手机来电,触摸事件就会被打断
t->getLocation():获取单击坐标,基于3D
t->getLocationInView():获取单击坐标,基于2D
Director::getInstance()->convertToGL(pt2):获取单击坐标,基于Cocos2d-x

_eventDispatcher是一个事件管理器,可以通过Director::getInstance()->getEventDispatcher()获得,是一个单例类

addEventListenerWithSceneGraPHPriority函数的声明为:
void EventDispatcher::addEventListenerWithSceneGraPHPriority(EventListener* listener,Node* node)
  • EventListener*listener:事件监听对象,当触摸事件发生时通过它来回调
  • Node*node:绑定的对象,当node对象被释放时,监听事件的注册也会被取消。当有多个触摸事件发生时(比如几个按钮叠加在一起),会根据node的层次优先回调(越在上面的对象越优先回调)
也可以用addEventListenerWithFixedPriority函数注册监听事件,但需要手动指定触摸事件回调的优先级,并且需要手动取消监听事件。



5.2.单点触摸-截断事件

效果

点击重叠部分:


关键的函数是setSwallowTouches,给它传递参数true,表示启动截断功能,也就是说可以决定是否要将触摸事件向下传递。
另外要注意的一点是注册监听事件时一个事件监听对象只能与一个目标对象绑定,否则运行会出错,可以使用clone函数来产生另一个事件监听对象。
还有,在onTouchBegan函数中,return true表示将触摸事件截断,return false表示不截断。


5.3.多点触摸

效果

猜你在找的Cocos2d-x相关文章