【8】coco2d-x事件处理机制一

一:触屏事件

在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;






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值