伴随着在3G移动互联网的高速发展,智能手机越来越被人们所接受,市场上也出现了各种不同操作系统的智能手机。本文是一篇工程师论文范文,主要论述了基于Android平台的飞行射击游戏设计。
摘要:该文研究了Android应用程序开发的总体架构、Android应用程序、Activity的界面布局、飞机飞行状态以及碰撞实现的原理。运用eclipse开发软件,运用intent通信来完成每个布局界面之间的调用,在此基础上设计实现了基于Android平台的飞机射击游戏。游戏过程了用户控制自己飞机的坐标来通过子弹射击敌机并使敌机爆炸的效果。经过最终的测试,应用程序的基本功能均已实现。
关键词:Android框架,源代码,手机游戏
现在的手机已经不仅仅局限于打电话,发短信,更多的手机用户希望可以通过一些手机应用程序来打发自己的闲暇时间,因此,为了解决用户的需求和顺应市场的发展,本文基于android平台设计了飞机射击游戏。
1 手机游戏需求分析
随着智能手机的快速普及,适用各种手机操作系统的应用软件也相继出现,手机游戏作为娱乐软件的一种,在移动端软件市场具有很大的份额,尤其以年轻用户为主。受限于移动端运行内存以及屏幕较小等特点,这使得手机更适合运行一些操作简捷以及娱乐性很高的应用软件。移动端设备已经成为大多数人日常必备的工具,因此有着庞大的用户数量,所以手机游戏软件有着很多的潜在客户,具有非常可观的市场潜力。
基于android平台的手机游戏具有简单的可操作性,鉴于android平台的开放性,对Android游戏的研究具有很大的意义。因此,本例讲解通过一些简单的Android相关技术来开发一个手机游戏的过程。
2 Android平台简介
2.1 Android平台框架结构
Android作为一种移动端的开源的操作系统,具有分层的架构,从其架构图可以很容易看出从高层到底层共分为四个层次,分别是:Application(应用程序)、Application Framework(应用程序框架)、Libraries(库)和Android Runtime(Android运行时)、Linux Kernel(Linux内核)。如图1所示。
图1 android平台框架结构
2.2 Android应用程序
Activity、Service、Broadcast、Receiver和Content Provider作为Android系统的基本组件,通过这些组件之间的不同组合即可构成应用程序,Android应用程序没有唯一的启动入口,一般由程序设计默认的Activity作为程序的启动入口,然后用户可以自主选择该Activity中的功能组件,组件之间可以通过Intent来进行会话,每个应用程序都必须有一个独立的Androidmanifest.xml配置文件,应用程序中用到的组件以及这些组件想要实现的功能都必须在这个文件中进行声明。
3 游戏设计的原理及实现
3.1 UI界面设计
点击应用程序后,将进入第一个交互界面,该交互界面用button组件在main. xml布局文件中通过线性排列来实现,用户四个选项可供选择,分别为开始游戏,继续游戏,游戏设置和退出游戏。主要关键源代码如下:
…
android:id=”@+id/startBt”
android:layout_height=”wrap_content”
android:layout_width=”fill_parent”
android:text=”开始游戏“/>
android:id=”@+id/continueBt”
android:layout_height=”wrap_content”
android:layout_width=”fill_parent”
android:text=”继续游戏“/>
android:id=”@+id/setBt”
android:layout_height=”wrap_content”
android:layout_width=”fill_parent”
android:text=”游戏设置“/>
android:id=”@+id/exitBt”
android:layout_height=”wrap_content”
android:layout_width=”fill_parent”
android:text=”退出游戏“/>
界面运行效果如图2所示:
图2 运行效果图
3.2飞机控制的原理
首先处理飞机使飞机处于向前飞行的状态,飞机的飞行是相对于地图而言,因此可以将对飞机的控制转化为对地图的控制,对Activity设置背景图片即可成为游戏运行时所需的环境,添加两张背景图片,并把图片的属性设置为向后滚动,这样相对于地图,飞机就会一直处于飞行状态。
然后需要控制飞机在屏幕中的移动范围,飞机的移动位置需要由用户来控制,并由用户点击屏幕来触发事件,程序会根据x = (int)enevt.getX();y = (int)enevt.getY()获得用户想让飞机到达的(x,y)坐标,因为飞机不会向我们想象的那样直接飞到我们想要的位置,所以需要用程序来实现自动计算当前飞机的坐标与目标坐标(x,y)的距离,然后将飞机的当前坐标相加需要移动的距离。获得屏幕触发点坐标的关键源代码如下: …
public Boolean onTouchEvent(Motion Event){
x = (int)enevt.getX();y = (int)enevt.getY();
switch (event.getAtion()){
case.MotionEvent.ACTION_DOWN:
mAnimView.UpdateTouchEvent(x,y,true); break:
case.MotionEvent.ACTION_MOVE: break:
case.MotionEvent.ACTION_UP:
mAnimView.UpdateTouchEvent(x,y,false); break;}
Return false;}
3.3主角飞机子弹的实现原理与敌机的碰撞
游戏运行时,飞机会不停的自动发射子弹,而敌机也会相继的出现,这会使得屏幕中会有很多数量的子弹与敌机,由于有许多数量的子弹与敌机需要处理,为了简化操作,可以把子弹和敌机分别作为对象来进行处理,并为对象分别设置方法和属性来记录其位置和与其在屏幕中绘制出来的区域,,这样要处理的碰撞就可以转化比较对象之间位置或者其绘制区域是否重叠,当位置有所重叠,即可视为碰撞,当碰撞发生时播放死亡爆炸动画。
4 结束语
本文首先论述了Android操作系统的系统架构和应用程序构成,然后介绍了手机游戏的设计原理以及关键代码。在android模拟机中自己编写的应用进行测试。经过开发自己完成了一个相对比较完整的Android应用,在这个过程中学会了很多关于Android的知识,比如Android开发环境搭建,Android的架构组成等等。通过实践可以对Android的理论知识有进一步的理解与感悟。
参考文献:
[1] 靳岩,姚尚朗.Google Android开发入门与实战[M]. 北京:人民邮电出版社,2009.
[2] 韩超,梁泉. Android系统原理及开发要点详解[M]. 北京:电子工业出版社,2010
[3] 郭宏志. Android应用开发详解[M]. 北京:电子工业出版社,2010
[4] Android Developers[EB/OL]. http://developer.android.com/
[5] Google Android Forum[EB/OL]. http://www.androidl.net/
[6] 杨丰盛.Android应用开发揭秘[M]. 北京:机械工业出版社,2010
[7] 姚显昊,刘卫国. Android的架构和应用开发研究[J]. 计算机系统应用,2008,11(3).
工程师论文发表期刊推荐《上海微型计算机》杂志是经国家新闻出版总署正式批准,面向国内外公开发行的国家期刊,《中国核心期刊(遴选)数据库》、《中国期刊全文数据库》、《中文科技期刊数据库》、《中国期刊网》等数据库全文收录期刊,杂志集权威性、理论性与专业性于一体,具有很高的学术价值,是作者科研、晋级等方面的权威依据,欢迎广大作者积极撰写论文,踊跃投稿!