本节课程的视频教程地址:http://edu.csdn.net/course/detail/1342/20991?auto_start=1
除了触摸,移动设备上一个很重要的输入源是设备的方向,因此大多数设备都配备了加速计,用于测量设备静止或匀速运动时所受到的重力方向。
重力感应来自移动设备的加速计,通常支持X,Y和Z三个方向的加速度感应,所以又称为三向加速计。在实际应用中,可以根据3个方向的力度大小来计算手机倾斜的角度或方向。
2,加速度计的类3.0中,新的事件机制下,我们需要通过创建一个加速计监听器EventListeneracceleration
,其静态create方法中有个acceleration的参数需要注意。acceleration是一个类,包含了加速计获得的3个方向的加速度,相关代码如下:
class acceleration{public: double x; double y; double z; double timestamp; acceleration(): x(0),y(0),z(0),timestamp(0) {}};
该类中每个方向的加速度大小都为一个重力加速度大小。
3,如何开启加速度计在使用加速计事件监听器之前,需要先启用此硬件设备:
Device::setAccelerometerEnabled(true);
首先要在头文件里面去重写加速度计的回调函数
//加速度计的回调函数
virtual voID onacceleration(cocos2d::acceleration* acc,cocos2d::Event* unused_event);
然后在Cpp文件里面去实现改加速度计的回调函数
voID HelloWorld::onacceleration(cocos2d::acceleration *acc,cocos2d::Event *unused_event){ Sprite* sprite = (Sprite*)this->getChildByTag(sTag); if (sprite) { double x = acc->x; double y = acc->y; double z = acc->z; }}
可以看到我们在onacceleration方法里面分别获得了acc对象的x,y,z三个值,他们分别对应的就是设备在三个方向的加速度的值。
好了,通过本节课的讲解希望大家对加速度计有初步的理解,并在以后的工作中能使用到它。
以上是内存溢出为你收集整理的Cocos2d-x从入门到精通第14课《加速度计》全部内容,希望文章能够帮你解决Cocos2d-x从入门到精通第14课《加速度计》所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)