ImageVerifierCode 换一换
格式:DOCX , 页数:83 ,大小:4.09MB ,
资源ID:11150678      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-11150678.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Android的飞机大战游戏设计与开发.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于Android的飞机大战游戏设计与开发.docx

1、基于Android的飞机大战游戏设计与开发LUOYANG NORMAL UNIVERSITY 2013届本科毕业设计基于Android的飞机大战游戏设计与开发院(系)名称信息技术学院专 业 名 称 软件工程 学生姓名学号指导教师XXX副教授完 成 时 间2013年5月摘要相信Android(安卓)已经为人们熟知,经过2011年的洗礼,Android智能手机火速上位,甚至说现在手机系统由IOS和Android平分也不为过。随着Android智能手机在中国内地的风靡,基于Android平台的应用开发也逐渐成为IT开发的一大热门。游戏是智能机不可或缺的应用之一,“水果忍者”、“愤怒的小鸟”等Andr

2、oid游戏应用的成功,让人看到手机游戏在Android平台上的巨大发展空间。基于此,采用Eclipse和Android ADT作为集成开发平台,开发本Android游戏APP。本应用为Android飞机大战游戏,主要有6个操作界面分别为开始界面,游戏界面,设置界面,得分界面,Win界面,Lose界面。玩家可以选择自己进入设置界面对游戏进行设置,或进入的分界面查看自己本次操作是否在前六名等操作。作为游戏背景音乐的存在是不可或缺的,本应用在不同的操作界面演奏不同的背景音乐,玩家还可以在设置界面设置背景音乐的大小。由于Android控件Activity的生命周期的特点,本应用会在被点击“EXIT”按

3、钮的Activity中发送一个EXIT的广播,所有的本应用的Activity收到广播后会自动结束,使得本应用能够完全的退出系统。本应用采用Android的SurfaceView绘制游戏界面,游戏的主界面美观,赏心悦目,以提高玩家对游戏的兴趣。游戏的控制模块应该做到易懂、易操作,以给玩家一个很好的游戏环境。关键词:Android开发;手机游戏;Java;SQLiteAbstractAndroid has been known for people, after 2011 years of baptism, Android smartphone developing fast . Android

4、occupies a large share in the market . Android game application is successful, it make a person see that mobile games on the Android platform of the huge development space. Based on this,we using Eclipse and Android ADT as integrated development platform, to develop the Android game application.This

5、 application for Android plane war games include six operating interface, respectively as the start screen, the game interface and set interface, Win interface, Lose interface. Players can choose interface to play the game. As the mobile phone game background music is indispensable, the application

6、play different background music in different interface, players can also set the size of the background music in setting interface.This application using the Android SurfaceView to draw game interface, game interface pleasing to the eye by people to play. I n order to give players a good game enviro

7、nment , the control module of game should be simple, easy to operate.Keywords : Android Programing; Mobile Phone Games ; Java Programing ;SQLite第1章 绪论1.1 系统开发背景 随着科技的发展,现在手机的功能已不仅仅是简单的接打电话、收发短信了。更多的手机用户希望在工作、学习之余通过方便灵巧可随身携带的仪器休闲娱乐。因此,为了迎合众多用户的需求并适应现在手机的规模,我们开发出一套适合各阶层人士的具有很强的娱乐性和交互性的飞机小游戏。虽然现在市面上存在着

8、各种各样的游戏版本,可是飞机游戏其市场还是相当大的。因为它的特殊在于人们在玩游戏的时候的过程中使爱不释手。随着游戏关卡不断提高,其难度也更大,刺激性也更强。可以说该游戏的优势在于它的简单易行,不论是手机,还是小游戏机,都能很快顺利的运行。对于在外忙碌的人,不可能花费大量时间在娱乐上,大型游戏是行不通的。这样的小游戏刚好迎合了他们的需求。1.2 系统研究目的和意义在如今社会,人们的工作学习压力逐渐增大,生活节奏逐渐加快,大多数人没有足够的时间去休闲娱乐,放松自己。这款小型的手机游戏,可以让我们随时随地都能享受游戏,从繁重的日常生活中解脱出来。游戏的主界面应该力求美观,赏心悦目,以提高玩家对游戏的

9、兴趣。游戏的控制模块应该做到易懂、易操作,以给玩家一个很好的游戏环境。1.3 可行性分析该系统采用Eclipse集成Android ADT为开发平台进行APP开发。Eclipse是一个开放的源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。虽然大都数用户很乐于Eclipse当作Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。Eclipse还包括插件开发环境,这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于E

10、clipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。基于Eclipse的应用程序的插件开发诸如Siemens公司的PLM产品Teamcenter的插件级开发。Android专门针对Eclipse开发做了ADT(Android Developer Tools)开发插件,因此该应用使用Eclipse开发完全可行。第2章 系统需求分析2.1 用户功能需求分析由于本程序简单易操作,交互性好,对用户没什么特别要求。一般用户经过几分钟练系都可以熟悉本游戏的规则。 图2-1 功能界面示例图 图2-2 游戏界面示例图

11、2.2 系统性能要求1.实时性本应用为手机游戏因此对于用户的操作必须做出立即响应,否则本游戏即为失败。2.易操作性单机手机游戏的最大特点即为易操作性,用户在不看说明的情况下也能够玩,并且在玩过几遍之后即熟悉本游戏的规则。这是本应用对于操作性的要求。2.3 业务流程分析依据系统的需求分析,得到系统的流程图如图2-3所示:图2-3 系统流程图第3章 系统总体设计3.1 系统功能模块分析 当前应用使用的SurfaceView来绘制的页面因此相对来说大部分逻辑都是由Activity来做处理的。本系统的功能模块也根据Activity的不同来划分成6个功能模块。3.1.1系统管理 各个操作界面布局适当,颜

12、色搭配等要美观。各个Activity之间的切换要快速(PS:它们各自的背景音乐也要随之切换,给用户以顺畅、自然的感觉)。用户在任何一个Activity点击“EXIT”按钮或ContextMenu中的“退出”都要成功的将当前应用挂起的多个Acitivity和当前Android虚拟机显示的Activity顺利的停止,并销毁。3.1.2 APP应用设置 设置应用系统背景音乐声音大小和游戏难度。 使用SeekBar来控制系统音量,使用RadioGroup来控制飞机难度。3.1.3 玩家信息管理 在游戏结束时对于玩家的名称和得分进行记录,并在玩家查看排名情况时,以倒序形式显示前六名玩家的得分和姓名等信息

13、。3.2 系统类关系图 系统实体类、边界类、控制类之间的关系如图3-1所示:图3-1 实体类、控制类、边界类之间的关系各个界面类之间的关系如图3-2所示:图3-2 APP边界类关系3.3 系统总体设计系统的中只有玩家一种用户,不必向其他的网站或者是教务系统一样进行身份验证等操作。玩家点击应用图标直接进入应用的开始界面。用户的操作总体可以归并成如3-3玩家用例图所显示的内容,子弹的用例图如图3-4所示,飞机的用例图如图3-5所示。用户的操作基本可以划分为“开始游戏”,“设置游戏”,“玩游戏”,“查看分数”,“退出游戏”这五个用例。图3-3 玩家用例图图3-4 子弹用例图图3-5 飞机用例图第4章

14、 系统详细设计4.1 开发工具简介Android开发工具(ADT)是一个插件的Eclipse IDE,目的是给开发人员提供一个强大的、集成的环境中构建Android应用程序。扩展能力的Eclipse ADT让你迅速建立新的Android项目,创建一个应用程序的用户界面,添加基于安卓框架的API,调试您的应用程序使用Android SDK工具,生成apk文件在使用Eclipse运行Android应用的时候Eclipse会自动的将生成的apk文件自动的注册到Android虚拟机中。在Eclipse ADT发展与高度推荐,是一种最快的方式开始。与引导项目设置它提供,以及工具集成、定制XML编辑器和调

15、试输出窗格,ADT给了你极大的提高在发展中Android应用程序。使用Eclipse集成Android ADT做Android应用开发是目前企业中常用的Android应用开发方式。本项目在开发环境:JDK 1.7 Eclipse 3.7.0Android ADT4.03 4.2 数据库设计本应用使用的是Android虚拟机做开发,因此使用的为Android虚拟机中自带的数据库SQLite。本应用只是在针对用户得分及用户姓名等基本信息进行存储,因此数据库非常简单,仅仅是设计了一个用来存储用户排名信息的表结构。用来存储用户基本信息的compositor_table的字段信息如图4-1所示。CREA

16、TE TABLE compositor_table (id INTEGER PRIMARY KEY,name VARCHAR(40) NOT NULL,score INTEGER NOT NULL)图4-1 compositor表Android中自带的SQLiteOpenHelper 作用:一个帮助类,帮助创建数据库和数据库版本管理。本应用直接创建一个SkyGameDataBaseHelper类继承Android自带的数据库操作类SQLiteOpenHelper。在onCreate()方法中创建表compositor_table。public void onCreate(SQLiteDatab

17、ase db) / TODO Auto-generated method stub String create_table = this.context.getResources().getString(R.string.create_compos_table);/ CREATE TABLE compositor_table (id INTEGER PRIMARY KEY,name VARCHAR(40) NOT NULL,score INTEGER NOT NULL); db.execSQL(create_table); 4.2.1 DAO(数据库访问对象)本应用中的数据库访问对象SkyGa

18、meDataBaseDao采用了单例模式,以保证当前应用中只存在一个DAO数据库访问对象。使用了最简单的单例,并未从线程安全的角度进行进一步的限制,原因在于考虑到当前应用中只有3个Activity使用了DAO,由图4-2可知Activity之间的切换类似于进程对于CPU的占用一样,当前显示在界面上的Activity是活动状态而其他Activity则是挂起状态,因此不必担心它们的线程同时去创建DAO对象以引起当前系统中多个DAO对象的状况。public class SkyGameDataBaseDao private static SkyGameDataBaseDao instance = nu

19、ll; private SQLiteDatabase database = null; private Context context = null; private SkyGameDataBaseHelper helper = null; public static SkyGameDataBaseDao getInstance (Context context) if(instance = null) instance = new SkyGameDataBaseDao(context); return instance; private SkyGameDataBaseDao(Context

20、context) this.context = context; helper = new SkyGameDataBaseHelper(context,1); while(this.database = helper.getWritableDatabase()=null); public void insertPlayer(SkyGamePlayer player) String sql = context.getResources().getString(Rpos_table); ContentValues values = new ContentValues(); values.put(s

21、core,player.getScore(); values.put(name, player.getName(); if(!this.database.isOpen() this.helper.onOpen(this.database); try this.database.beginTransaction(); this.database.insert(sql, null, values); this.database.setTransactionSuccessful(); catch (Exception e) / TODO Auto-generated catch block e.pr

22、intStackTrace(); finally this.database.endTransaction(); public ArrayList getPlayers() ArrayList players = new ArrayList(); String sql = context.getResources().getString(R.string.select_form_compos_table_count); Cursor cursor = database.rawQuery(sql, null); cursor.moveToFirst(); if(cursor.getCount()

23、 0) int count = 0; count+; players.add(new SkyGamePlayer(count,cursor.getString(1),cursor.getInt(2); while(cursor.moveToNext() count +; players.add(new SkyGamePlayer(count,cursor.getString(1),cursor.getInt(2); return players; public void delete() String sql = context.getResources().getString(R.strin

24、g.delete_from_compos_table); if(!this.database.isOpen() this.helper.onOpen(this.database); try this.database.beginTransaction(); this.database.execSQL(sql); this.database.setTransactionSuccessful(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); finally this.database.e

25、ndTransaction(); public void close() if(this.database.isOpen() this.database.close(); 图4-2 Android中Activity生命周期状态图4.2.2 SQLite数据库SQLite,是一款轻量级的关系型数据库。由于它占用的资源非常少,所以在很多嵌入式设备都是用SQLite来存储数据。Android作为目前主流的移动操作系统,完全符合SQLite占用资源少的优势,故在Android平台上,集成了一个嵌入式关系型数据库SQLite。由于SQLite是轻量级的关系型数据库,它支持的SQL语句也是有限的,在使用S

26、QL语句获得前6名玩家的信息时直接使用了SQLite不支持的TOP语句引起了异常。在查阅相关资料后才发现SQLite不支持TOP语句,因此使用语句DESC LIMIT来代替TOP达到了自己想要的只获得表compositor_table中的score字段值最大的前六个记录信息。SELECT * FROM compositor_table ORDER BY score DESC LIMIT 64.3 游戏界面设计4.3.1开始界面使用SurfaceView将图4-3中的未被按下的按钮和图4-5游戏开始界面背景图片绘制成游戏开始界面图4-6。图4-3 未被按下的按钮图标集图4-4 被按下的按钮图标集

27、图4-5 开始界面背景图片图4-6 开始界面4.3.1.1 AndroidManifest.xmlAndroid应用程序中,并没有像C+和Java这样有main函数来作为应用程序的入口。Android应用程序提供的是入口Activity,而非入口函数。AndroidManifest.xml文件中定义了整个Android应用所包含的Activity.在AndroidManifest.xml中将SkyGameStartActivity设置为当前SkyGame启动时,默认加载的Activity,代码如下: 4.3.1.2 Activity中注册layout在SkyGameStartActivity的

28、onCreate方法中设置要显示的layout,方法如下所示:protected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.sky_game_start_layout);/设置当前activity调用的layout /其他操作4.3.1.3 BroadcastReceiver由于本应用是有多个Activity为了解决多个Activity在其中任意一个Activity结束

29、时都会相应一起退出系统,因此针对每一个Activity设置一个BroadcastReceiver来接收广播,一旦接收到广播当前Activity自动退出。Activity接收到广播后退出的代码如下所示:private BroadcastReceiver exitReceiver = new BroadcastReceiver() Override public void onReceive(Context context, Intent intent) / TODO Auto-generated method stub SkyGameScreenRollActivity.this.finish(); ;4.3.1.4 发送广播而当前Activity在被按下“EXIT”或者“退出”按钮时,会向外界发送一个广播,之后结束自己:Activity activity = (Activity)context; Intent intent = new Intent(EXIT); intent.setAction(EXIT); activity.sendBroadcast(intent); activity.finish();4.3.1.5 MediaPlayer(媒体播放器) 本应用使用Android的MediaPlayer来演奏每一个页面的背景音乐。背景音乐可以存放在两个位

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2