现在的位置: 首页 > 综合 > 正文

Android游戏开发之旅(十二)Sensor重力感应(1)

2013年03月24日 ⁄ 综合 ⁄ 共 947字 ⁄ 字号 评论关闭

从Android手机
开始,主流的智能机纷纷加入了感应器Sensor硬件,常见的有光线感应器、重力感应器、加速感应器,而更高级的有磁极方向、陀螺仪、距离感应器、温度感应器等等。对于Android游戏
开发
,我们主要用到重力、加速、磁力和陀螺仪四种,当然部分游戏可能需要GPS
或Cellid定位来修正一些位移信息。从系统
中提高的感应器主要在android
.hardware中,我们可以看到系统提供了 android.hardware.SensorEventListener、Sensor和SensorManager这三个类,我们会发现除了可以获取
感应器的信息,和感应器的原始数据
外,并没有提供相关的逻辑处理。Android123将会分3篇来详细的介绍不同感应器的作用和逻辑处理,比如自由落体,晃动,磁极,当前的旋转速度。

未来Android123将完成主要是一个基于OpenGL 3D的雷电游戏,最终加入联网对战效果
可以团队打怪实现手机3D网游充分发挥Android手机的娱乐能力。对于大多数新款Android手机可能没有配备轨迹球或导航键的方向控制,所以重力感应器是这类实时性较强游戏的首选控制方式。主要有以下几点问题对于Sensor

1. 降噪处理,如果做过LBS软件
的大家可能明白偏移修正,在GPS无法正常获取数据较间断时地图不能乱飘,这里Sensor也不例外,除了使用采样数据平均值获取外,可以间隔采样的方法来处理。细节的算法我们将在下节给出示例代码

2. 感应器的敏感度,在Android中提供了四种延迟级别分别为

SENSOR_DELAY_FASTEST 最低延迟,一般不是特别敏感的处理不推荐
使用,该种模式可能造成手机电力大量消耗,由于传递的为原始数据,算法不处理好将会影响游戏逻辑和UI的性能,所以Android开发网不推荐大家使用。

SENSOR_DELAY_GAME 游戏延迟,一般绝大多数的实时性较高的游戏都使用该级别。
int SENSOR_DELAY_NORMAL 标准延迟,对于一般的益智类或EASY级别的游戏可以使用,但过低的采样率可能对一些赛车类游戏有跳帧现象。
int SENSOR_DELAY_UI 用户界面
延迟,一般对于屏幕
方向自动
旋转使用,相对节省电能和逻辑处理,一般游戏开发中我们不使用。

 

抱歉!评论已关闭.