Cocos2d-x从入门到精通第14课《加速度计》



1,加速度的介绍

本节课程的视频教程地址: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);

4,加速度计的使用

首先要在头文件里面去重写加速度计的回调函数

//加速度计的回调函数
    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三个值,他们分别对应的就是设备在三个方向的加速度的值。


好了,通过本节课的讲解希望大家对加速度计有初步的理解,并在以后的工作中能使用到它。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值