Android 姿态传感器在手机游戏开发中应用.docVIP

  • 17
  • 0
  • 约2.74千字
  • 约 5页
  • 2017-08-31 发布于安徽
  • 举报

Android 姿态传感器在手机游戏开发中应用.doc

Android姿态传感器在手机游戏开发中的应用 摘要:本文阐述了采用Android姿态传感器技术对传统的小球闯关游戏进行,后的游戏的玩法从原来的手机按键或者触摸操作方式改为更加自由的甩、摇、转等空间操作方式,这种创新的游戏操作方式可以给游戏玩家带来更好的体验。 关键字:Android、姿态传感器、手机游戏 1 引言 过去,尽管Android SDK开发环境能在移动开发人员和手机设备之间建立沟通桥梁,但是要访问手机底层硬件还是让移动开发人员感到非常棘手。随着Android开发团队对Android SDK的不断升级更新,手机设备的许多硬件功能不断浮出水面,开发人员越来越欣喜的发现可以在手机设备内部访问一些“好工具”,比如:手机中的“传感器”。 Android 平台下的传感器包括加速度传感器(Accelerometer)、姿态传感器(Orientation)、磁场传感器(Magnetic、Field)和光传感器(Light)等 [],利用传感器可以开发出很多新奇有趣的小游戏。 随着手机游戏玩家对于手机游戏的创新体验有越来越高的要求,传统的游戏操作方式已经很难吸引玩家。因此可以利用Android平台下的各种传感器来创新开发一些新颖有趣的游戏,其中姿态传感器在开发手机游戏中是应用最为广泛的一种。 2 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轴也会跟随手机一起转动,而不是保持与空间坐标系中轴相同的方向。 上述介绍的是姿态传感器,那么姿态传感器在Android手机如何工作呢?Android手机提供了内置传感器的驱动程序,移动开发人员可以调用获得相应的数据,从而判断手机的姿态。 3姿态传感器在小球闯关游戏开发中的应用 姿态传感器技术在小球闯关游戏主要应用在手机姿态计算模块,该模块的功能就是捕获手机姿态,并根据收到的数据计算出小球的运动方向。 3.1捕获传感器数据 本游戏中,捕获传感器数据的类是BallListener类,BallListrener类是SensorListener的子类,其主要功能是对手机的姿态变化进行监听并获取相应的变化数据。SensorListener是Android系统中的内置类,它的主要功能是,当手机中传感器发生变化时,接收来自传感器的值。它提供了一个onSensorChanged方法,用来读取来自传感器的数据。 图2 BallListener类图 BallListener类包含三个成员变量father、startTime和timeSpan,如图2所示。其中startTime是用来记录开始游戏的时间,timeSpan是获取传感器数据的时间间隔。当系统当前时间减去开始时间等于timeSpan的值时,就获取手机姿态数据进行计算。 BallListener类包括四个成员方法,如图2所示。 BallListener方法是类的构造方法,主要功能在其中初始化成员变量。 onSensorChanged方法是重写父类SensorListener的onSensorChanged方法,在该方法中每个固定的时间获取手机姿态数据,并调用analysisData方法进行计算。其实现代码如下: analysisData方法主要功能是获取values数组进行修正,调用RotateUtil类的getDirectionCase方法计算出小球的方向。其实现代码如下: 3.2 计算小球的运动方向 在BallListener类的analysisData方法中,了RotateUtil类的getDirectionCase方法。RotateUtil类的主要是对捕获的手机姿态数据进行计算得出小球的运动方向,RotateUtil类图如图3所示。 图3 RotateUtil类图 RotateUtil类是静态工具类,提供了静态方法用来计算小球的运动方向。 XR

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档