1.3 研究内容 根据玩家需求,设计并完成一个手机飞行射击小游戏—“飞机大战”,为完成此次项目,研究内容主要有以下几点: 1.学习Eclipse开发游戏的基
1.3 研究内容
根据玩家需求,设计并完成一个手机飞行射击小游戏—“飞机大战”,为完成此次项目,研究内容主要有以下几点:
1.学习Eclipse开发游戏的基本组件的使用
2.Andriod环境的搭建和JAVA语言的学习研究以及模拟器的安装和连接。
3.采用双缓冲绘图技术以及Canvas完成游戏主体界面的绘制和更新,并将游戏主体界面用SurfaceView视图呈现出来。
4.对于子弹类和飞机类之间的接触进行碰撞检测,并且对碰撞添加爆炸效果。
5.利用Activity组件完成游戏界面和商店界面等不同界面的切换,并且利用intent方法完成相应数据的传递。
6.采用Android自带的SQLITE数据库完成玩家信息表的创建,并且通过读取表中信息生成本地积分排行榜。
7.利用SoundPool以及Mediaplayer完成游戏音乐和音效渲染修饰。
8.学习手机传感器技术,并且将姿态传感器和飞机的操纵连接在一起,给予玩家新的游戏形式。
1.4 论文组织结构
第一章绪论主要介绍研究背景、国内外现状的分析,以及研究的内容和目的。
第二章介绍了本款游戏开发的过程中主要运用的技术。
第三章从项目可行性、功能需求等方面对于此次开发进行了分析。
第四章对于游戏开发的初步设计与实现进行了详尽的阐述。
第五章对游戏设计的实现进行了分析。
第六章、第七章是对于游戏的测试以及总结。
2 关键开发技术
本游戏采用Eclipse完成开发,使用Surfaceview作为游戏的主视图,使用SQLITE存储游戏积分。运用的几个关键开发技术如下:
2.1 Activity组件
Android应用软件的界面主要使用Activity实现,Activity组件是安卓开发中最常用的组件,通常情况下一个Activity就是一个单独的屏幕。定义Activity可以通过XML文件定义等方式,编辑Activity界面的布局,完成目标界面的显示。不同Activity界面之间可以通过Intent完成传递切换以及数据传输。
2.2 Surfaceview视图
在安卓开发中,游戏主视图通常使用View或者Surfaceview。实际上,Surfaceview是视图(View)的继承类,但Surfaceview可以在一个新起的单独线程中绘制画面,而View必须在UI的主线程中更新画面,频繁的绘制会阻塞线程。手机飞机射击游戏需要一直重绘飞机和子弹的运动状态,因此采用Surfaceview视图更加合适。
2.3 双缓冲机制
采用Surfaceview视图的另一个原因是因为View视图不具有双缓冲机制。双缓冲是指在内存中创建一个与屏幕绘图区域相同的对象,将图形先绘制到内存中,当需要的时候直接从内存中调用图像[2],大大提高了绘制效率。飞机射击游戏的画面每时每刻都在更新,只有采用双缓冲机制才可以完成画布的绘制,毕竟避免了单个视图切换导致的屏幕闪烁的现象。
2.4 姿态传感器
Android平台之所以吸引人,很重要的一个原因便是传感器的应用能给人们带来奇妙的体验。在游戏开发中,如赛车类型的游戏经常会用到传感器,而传统的飞行射击游戏却还没有太多的使用传感器的先例[3]。因此,笔者选择将传感器元素加入到游戏中来,给予玩家新的操作体验。
传感器的种类很多,其中姿态传感器和本游戏最为契合,玩家在游戏过程中根据操控的需要改变手机的姿态,手机获得姿态数据之后传递给应用程序进行分析、计算得出具体的操作数值。姿态传感器利用三个标准不变的坐标轴为参考,姿态传感器读取手机平面与三个坐标轴的偏移角度,获取三个参数。本游戏将偏移参数传递给绘制图形的Surfaceview类,对于飞机的坐标进行绘制实时呈现出用体感操纵飞机的特殊效果。
3 游戏系统分析