- 2
- 0
- 约4.37千字
- 约 7页
- 2016-09-10 发布于北京
- 举报
Android姿态传感器在手机游戏开发中的应用.doc
Android姿态传感器在手机游戏开发中的应用
摘 要:本文阐述了如何采用Android姿态传感器技术对传统的小球闯关游戏进行二次开发,二次开发后的游戏的玩法从原来的手机按键或者触摸操作方式改为更加自由的甩、摇、转等空间操作方式,这种创新的游戏操作方式可以给游戏玩家带来更好的体验。
关键词:Android;姿态传感器;手机游戏
中图分类号:TP393.09;TN929.53
过去,尽管Android SDK开发环境能在移动开发人员和手机设备之间建立沟通桥梁,但是要访问手机底层硬件还是让移动开发人员感到非常棘手。随着Android开发团队对Android SDK的不断升级更新,手机设备的许多硬件功能不断浮出水面,开发人员越来越欣喜的发现可以在手机设备内部访问一些“好工具”,比如:手机中的“传感器”。
Android平台下的传感器包括加速度传感器(Accelerometer)、姿态传感器(Orientation)、磁场传感器(Magnetic、Field)和光传感器(Light)等,利用传感器可以开发出很多新奇有趣的小游戏。
随着手机游戏玩家对于手机游戏的创新体验有越来越高的要求,传统的游戏操作方式已经很难吸引玩家。因此可以利用Android平台下的各种传感器来创新开发一些新颖有趣的游戏,其中姿态传感器在开发手机游戏中是应用最为广泛的一种。
1 Android姿态传感器原理简介
Android姿态传感器主要感应手机方位的变化,捕获的是三个方位的参数,分别代表手机沿Yaw轴、Pitch轴和Roll轴转过的角度,如图1所示。Yaw轴、Pitch轴和Roll轴与平时理解的标准空间坐标系是有所区别的。
图1 Android姿态传感器原理
Yaw轴是三个轴中最简单的一个,其表示的方向是不变的,其方向一直是与重力加速度g的方向相反,即一直是竖直向上的,与手机的姿态无关。
Pitch轴的方向永远与Yaw轴成90度角,因此其方向会随着手机沿Yaw轴旋转而改变,图1表示了该轴的方向。事实上Yaw轴与Pitch轴相当于焊在一起的一个90度支架,无论手机怎么旋转,其与Yaw轴的角度都为90度。
Roll轴的方向是沿着手机屏幕向上的,在图1中可以看到,无论手机是何种姿态,Roll轴始终沿着手机的屏幕向上,其方向是与手机绑定的。由于Roll轴的方向与手机之间的关系是固定的,所以手机围绕Yaw轴或Pitch轴转动的过程中,Roll轴也会跟随手机一起转动,而并不是保持与标准空间坐标系中Y轴相同的方向。
上述介绍的是手机旋转过程中姿态传感器如何定位,那么姿态传感器在Android手机中如何工作呢?Android手机提供了内置姿态传感器的驱动程序,移动开发人员可以调用相应的驱动程序获得相应的数据,从而来判断手机的姿态。
2 Android姿态传感器在小球闯关游戏二次开发中的应用
Android姿态传感器技术在小球闯关游戏二次开发中主要应用在手机姿态计算模块,该模块的功能就是捕获手机姿态,并根据收到的数据计算出小球的运动方向。
2.1 捕获传感器数据
本游戏中,捕获传感器数据的类是BallListener类,BallListrener类是SensorListener的子类,其主要功能是对手机的姿态变化进行监听并获取相应的变化数据。SensorListener是Android系统中的内置类,它的主要功能是,当手机中传感器发生变化时,接收来自传感器的值。它提供了一个onSensorChanged方法,用来读取来自传感器的数据。
图2 BallListener类图
BallListener类包含三个成员变量father、startTime和timeSpan,如图2所示。其中startTime是用来记录开始游戏的时间,timeSpan是获取传感器数据的时间间隔。当系统当前时间减去开始时间等于timeSpan的值时,就获取手机姿态数据进行计算。
BallListener类包括四个成员方法,如图2所示。
BallListener方法是类的构造方法,主要功能是在其中初始化成员变量。
onSensorChanged方法是重写父类SensorListener的onSensorChanged方法,在该方法中每个固定的时间获取手机姿态数据,并调用analysisData方法进行计算。其实现代码如下:
public void onSensorChanged(int sensor,float[]values){//重写onSensorChanged方法
long now=System.currentTimeMillis(); //获取系统当前
原创力文档

文档评论(0)