【8】coco2d-x事件处理机制一
来源:互联网 发布:淘宝航模电池套装包邮 编辑:程序博客网 时间:2024/05/26 05:53
一:触屏事件
在Coco2d-x中,继承触屏代理协议CCTouchDelegate可以检测触屏事件并调用回调函数。下图是CCTouchDelegate类继承关系图:
CCStandardTouchDelegate是标准的获得多点触摸的范例。CCTargeteTouchDelegate不用处理触摸点集合,它是返回单点。但是CCTargeteTouchDelegate并没有屏蔽多点触摸,而是将多点离散成单点,同时传递了过来。
1:触点类CCTouch
CCTouch封装了触摸点的信息。包括触摸点横纵坐标和触摸点ID号,CCTouch作为参数在函数中传递。
获取坐标值:
CCPoint point=touch->getLocationInView();
point=CCDirector->sharedDirector()->converTOGL(point);
CCouch在触摸触摸函数中传递,触摸函数如下图:
要先使用触摸,必须先为继承CCTouchDeleagte类加入触摸
加入单点触摸:pDirector->getTouchDispatcher()->addTargetedDelegate(this,0,true);
加入多点触摸:PDirector->getTouchDispatcher()->addStandardTouchDelegate(this,0);
不同的是在单点触摸中传递的产生CCTouch,可以直接获取触摸点坐标。
不同的是在单点触摸中传递的产生CCTouch,可以直接获取触摸点坐标。二在多点触摸中,传递的参数是CCSet*pTouches,必须迭代CCset获得各触摸点
二:加速传感器事件
Cocod-x中使用加速传感器代理CCAcceleromterDelegate提供的方法来接收加速传感器的变化,CCLayer继承了CCAcceleromterDelegate,所有CClayer及其子类都可以使用获得加速传感器的方法。
CCAcceleration结构体封装了加速传感器的数据。包括时间赚和坐标轴上的加速度值(以重力加速度为单位),要获得坐标轴的加速度值时,必须乘以重力加速度。
如下代码:
setAcceleromaterEnabled(true);//可以捕获加速时间
重写didAccelerater(CCAcceleration* pAccelerationValueValue)捕获
ptTemp.x=pAccelerationValue.x *9.81f;
ptTemp.y=pAccelerationValue.y*9.81f;
- 【8】coco2d-x事件处理机制一
- 【9】coco2d-x事件处理机制二
- coco2d-x touch事件
- cocos2d-x-3.1 事件分发机制 (coco2d-x 学习笔记七)
- coco2d-x 3.0基础浅谈(一)
- cocos2d-x Touch事件处理机制
- cocos2d-x Touch事件处理机制
- cocos2d-x Touch事件处理机制
- cocos2d-x Touch事件处理机制
- cocos2d-x Touch事件处理机制
- cocos2d-x Touch事件处理机制
- cocos2d-x 触摸事件处理机制
- cocos2d-x Touch事件处理机制
- cocos2d-x处理点击事件的机制
- cocos2d-x Touch事件处理机制
- cocos2d-x Touch事件处理机制
- Cocos2d-x之Touch事件处理机制
- Cocos2d-x Touch事件处理机制
- Shell 基础学习
- the thinker of code complete -- general issues in using variables
- google mock C++单元测试框架
- 将n个字符串中相同的字符串删除
- 我的2013生活和工作总结-成功转行之年
- 【8】coco2d-x事件处理机制一
- Regularized logistic regression
- JAVA5线程池使用
- Mocks Aren't Stubs
- 查看LINUX版本命令
- java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式详解与比较(二)
- java 代理
- 轻松编写 C++ 单元测试 介绍全新单元测试框架组合: googletest 与 googlemock
- 用java代码构建一个线程池