Cocos2d-x学习笔记(二十五)之 加速度传感器事件

  智能手机的游戏与应用中,也经常会用到加速度传感器事件来丰富用户的操作,比如赛车游戏中摇动手机控制前进方向、动作过关游戏中通过加速度传感器来控制角色的移动和跳跃方向等。Cocos2D-x中使用加速度传感器代理CCAccelerometerDelegate提供的方法来接收加速度传感器的数值变化,继承关系如下:

  CCLayer-->CCAccelerometerDelegate。

  布景层类CCLayer和其子类继承自CCAccelerometerDelegate类,因此布景层类和其子类可以使用获得加速度传感器的方法。

  CCAccelerometerDelegate类的主要成员函数:

  didAccelerate:加速度传感器数据变化传入数据。

  didAccelerate函数传入CCAcceleration结构体,其数据如下:

  x:x轴分数据(以重力加速度为单位)。

  y:y轴分数据(以重力加速度为单位)。

  z:z轴分数据(以重力加速度为单位)。

  timestamp:时间戳。

  CCAcceleration结构体存储了加速度传感器的数据,包括时间戳和坐标轴上的加速度值,这个值以重力加速度为单位,因此,要获得相应坐标轴加速度的值时,需要乘上重力加速度g。

  使用示例如下:

1 //要在CCLayer中获得加速度传感器事件的数据,首先要在初始化函数(onEnter)中加入允许接收加速度传感器事件的函数。
2 setAccelerometerEnabled( true );
3 
4 //然后重写didAccelerate函数。在didAccelerate函数中获得CCAcceleration结构体,获得x轴和y轴的以重力加速度为单位的加速度值,分别乘以重力加速度值获得相应的加速度。
5 void AccelerometerTest::didAccelerate( CCAcceleration* pAccelerationValue )
6 {
7 }

 

posted @ 2013-08-27 14:50  【Winco】  阅读(1428)  评论(0编辑  收藏  举报