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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于Android的飞机大战游戏设计与开发本科毕业设计论文.docx

1、基于Android的飞机大战游戏设计与开发本科毕业设计论文本科毕业设计基于Android的飞机大战游戏设计与开发毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名: 日期: 毕业论文(设计)授权使用说明本论文(设计)作者完全了解*学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(设计)

2、用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。 作者签名: 指导教师签名: 日期: 日期: 注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:

3、任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它摘要相信Android(安卓)已经为人们熟知,经过201

4、1年的洗礼,Android智能手机火速上位,甚至说现在手机系统由IOS和Android平分也不为过。随着Android智能手机在中国内地的风靡,基于Android平台的应用开发也逐渐成为IT开发的一大热门。游戏是智能机不可或缺的应用之一,“水果忍者”、“愤怒的小鸟”等Android游戏应用的成功,让人看到手机游戏在Android平台上的巨大发展空间。基于此,采用Eclipse和Android ADT作为集成开发平台,开发本Android游戏APP。本应用为Android飞机大战游戏,主要有6个操作界面分别为开始界面,游戏界面,设置界面,得分界面,Win界面,Lose界面。玩家可以选择自己进入设

5、置界面对游戏进行设置,或进入的分界面查看自己本次操作是否在前六名等操作。作为游戏背景音乐的存在是不可或缺的,本应用在不同的操作界面演奏不同的背景音乐,玩家还可以在设置界面设置背景音乐的大小。由于Android控件Activity的生命周期的特点,本应用会在被点击“EXIT”按钮的Activity中发送一个EXIT的广播,所有的本应用的Activity收到广播后会自动结束,使得本应用能够完全的退出系统。本应用采用Android的SurfaceView绘制游戏界面,游戏的主界面美观,赏心悦目,以提高玩家对游戏的兴趣。游戏的控制模块应该做到易懂、易操作,以给玩家一个很好的游戏环境。关键词:Andro

6、id开发;手机游戏;Java;SQLiteAbstractAndroid has been known for people, after 2011 years of baptism, Android smartphone developing fast . Android 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 developm

7、ent space. Based on this,we using Eclipse and Android ADT as integrated development platform, to develop the Android game application.This application for Android plane war games include six operating interface, respectively as the start screen, the game interface and set interface, Win interface, L

8、ose interface. Players can choose interface to play the game. As the mobile phone game background music is indispensable, the application play different background music in different interface, players can also set the size of the background music in setting interface.This application using the Andr

9、oid SurfaceView to draw game interface, game interface pleasing to the eye by people to play. I n order to give players a good game environment , the control module of game should be simple, easy to operate.Keywords : Android Programing; Mobile Phone Games ; Java Programing ;SQLite第1章 绪论1.1 系统开发背景 随

10、着科技的发展,现在手机的功能已不仅仅是简单的接打电话、收发短信了。更多的手机用户希望在工作、学习之余通过方便灵巧可随身携带的仪器休闲娱乐。因此,为了迎合众多用户的需求并适应现在手机的规模,我们开发出一套适合各阶层人士的具有很强的娱乐性和交互性的飞机小游戏。虽然现在市面上存在着各种各样的游戏版本,可是飞机游戏其市场还是相当大的。因为它的特殊在于人们在玩游戏的时候的过程中使爱不释手。随着游戏关卡不断提高,其难度也更大,刺激性也更强。可以说该游戏的优势在于它的简单易行,不论是手机,还是小游戏机,都能很快顺利的运行。对于在外忙碌的人,不可能花费大量时间在娱乐上,大型游戏是行不通的。这样的小游戏刚好迎合

11、了他们的需求。1.2 系统研究目的和意义在如今社会,人们的工作学习压力逐渐增大,生活节奏逐渐加快,大多数人没有足够的时间去休闲娱乐,放松自己。这款小型的手机游戏,可以让我们随时随地都能享受游戏,从繁重的日常生活中解脱出来。游戏的主界面应该力求美观,赏心悦目,以提高玩家对游戏的兴趣。游戏的控制模块应该做到易懂、易操作,以给玩家一个很好的游戏环境。1.3 可行性分析该系统采用Eclipse集成Android ADT为开发平台进行APP开发。Eclipse是一个开放的源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。虽然大都数用户很乐于Ec

12、lipse当作Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。Eclipse还包括插件开发环境,这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。基于Eclipse的应用程序的插件开发诸如Siemens公司的PLM产品Teamcenter的插件级开发。Android专门针对Eclipse开发做了ADT(Android De

13、veloper Tools)开发插件,因此该应用使用Eclipse开发完全可行。第2章 系统需求分析2.1 用户功能需求分析由于本程序简单易操作,交互性好,对用户没什么特别要求。一般用户经过几分钟练系都可以熟悉本游戏的规则。 图2-1 功能界面示例图 图2-2 游戏界面示例图2.2 系统性能要求1.实时性本应用为手机游戏因此对于用户的操作必须做出立即响应,否则本游戏即为失败。2.易操作性单机手机游戏的最大特点即为易操作性,用户在不看说明的情况下也能够玩,并且在玩过几遍之后即熟悉本游戏的规则。这是本应用对于操作性的要求。2.3 业务流程分析依据系统的需求分析,得到系统的流程图如图2-3所示:图2

14、-3 系统流程图第3章 系统总体设计3.1 系统功能模块分析 当前应用使用的SurfaceView来绘制的页面因此相对来说大部分逻辑都是由Activity来做处理的。本系统的功能模块也根据Activity的不同来划分成6个功能模块。3.1.1系统管理 各个操作界面布局适当,颜色搭配等要美观。各个Activity之间的切换要快速(PS:它们各自的背景音乐也要随之切换,给用户以顺畅、自然的感觉)。用户在任何一个Activity点击“EXIT”按钮或ContextMenu中的“退出”都要成功的将当前应用挂起的多个Acitivity和当前Android虚拟机显示的Activity顺利的停止,并销毁。3

15、.1.2 APP应用设置 设置应用系统背景音乐声音大小和游戏难度。 使用SeekBar来控制系统音量,使用RadioGroup来控制飞机难度。3.1.3 玩家信息管理 在游戏结束时对于玩家的名称和得分进行记录,并在玩家查看排名情况时,以倒序形式显示前六名玩家的得分和姓名等信息。3.2 系统类关系图 系统实体类、边界类、控制类之间的关系如图3-1所示:图3-1 实体类、控制类、边界类之间的关系各个界面类之间的关系如图3-2所示:图3-2 APP边界类关系3.3 系统总体设计系统的中只有玩家一种用户,不必向其他的网站或者是教务系统一样进行身份验证等操作。玩家点击应用图标直接进入应用的开始界面。用户

16、的操作总体可以归并成如3-3玩家用例图所显示的内容,子弹的用例图如图3-4所示,飞机的用例图如图3-5所示。用户的操作基本可以划分为“开始游戏”,“设置游戏”,“玩游戏”,“查看分数”,“退出游戏”这五个用例。图3-3 玩家用例图图3-4 子弹用例图图3-5 飞机用例图第4章 系统详细设计4.1 开发工具简介Android开发工具(ADT)是一个插件的Eclipse IDE,目的是给开发人员提供一个强大的、集成的环境中构建Android应用程序。扩展能力的Eclipse ADT让你迅速建立新的Android项目,创建一个应用程序的用户界面,添加基于安卓框架的API,调试您的应用程序使用Andr

17、oid SDK工具,生成apk文件在使用Eclipse运行Android应用的时候Eclipse会自动的将生成的apk文件自动的注册到Android虚拟机中。在Eclipse ADT发展与高度推荐,是一种最快的方式开始。与引导项目设置它提供,以及工具集成、定制XML编辑器和调试输出窗格,ADT给了你极大的提高在发展中Android应用程序。使用Eclipse集成Android ADT做Android应用开发是目前企业中常用的Android应用开发方式。本项目在开发环境:JDK 1.7 Eclipse 3.7.0Android ADT4.03 4.2 数据库设计本应用使用的是Android虚拟机

18、做开发,因此使用的为Android虚拟机中自带的数据库SQLite。本应用只是在针对用户得分及用户姓名等基本信息进行存储,因此数据库非常简单,仅仅是设计了一个用来存储用户排名信息的表结构。用来存储用户基本信息的compositor_table的字段信息如图4-1所示。CREATE TABLE compositor_table (id INTEGER PRIMARY KEY,name VARCHAR(40) NOT NULL,score INTEGER NOT NULL)图4-1 compositor表Android中自带的SQLiteOpenHelper 作用:一个帮助类,帮助创建数据库和数据

19、库版本管理。本应用直接创建一个SkyGameDataBaseHelper类继承Android自带的数据库操作类SQLiteOpenHelper。在onCreate()方法中创建表compositor_table。public void onCreate(SQLiteDatabase db) / TODO Auto-generated method stub String create_table = this.context.getResources().getString(R.string.create_compos_table);/ CREATE TABLE compositor_tabl

20、e (id INTEGER PRIMARY KEY,name VARCHAR(40) NOT NULL,score INTEGER NOT NULL); db.execSQL(create_table); 4.2.1 DAO(数据库访问对象)本应用中的数据库访问对象SkyGameDataBaseDao采用了单例模式,以保证当前应用中只存在一个DAO数据库访问对象。使用了最简单的单例,并未从线程安全的角度进行进一步的限制,原因在于考虑到当前应用中只有3个Activity使用了DAO,由图4-2可知Activity之间的切换类似于进程对于CPU的占用一样,当前显示在界面上的Activity是活动状

21、态而其他Activity则是挂起状态,因此不必担心它们的线程同时去创建DAO对象以引起当前系统中多个DAO对象的状况。public class SkyGameDataBaseDao private static SkyGameDataBaseDao instance = null; private SQLiteDatabase database = null; private Context context = null; private SkyGameDataBaseHelper helper = null; public static SkyGameDataBaseDao getInsta

22、nce (Context context) if(instance = null) instance = new SkyGameDataBaseDao(context); return instance; private SkyGameDataBaseDao(Context context) this.context = context; helper = new SkyGameDataBaseHelper(context,1); while(this.database = helper.getWritableDatabase()=null); public void insertPlayer

23、(SkyGamePlayer player) String sql = context.getResources().getString(Rpos_table); ContentValues values = new ContentValues(); values.put(score,player.getScore(); values.put(name, player.getName(); if(!this.database.isOpen() this.helper.onOpen(this.database); try this.database.beginTransaction(); thi

24、s.database.insert(sql, null, values); this.database.setTransactionSuccessful(); catch (Exception e) / TODO Auto-generated catch block e.printStackTrace(); finally this.database.endTransaction(); public ArrayList getPlayers() ArrayList players = new ArrayList(); String sql = context.getResources().ge

25、tString(R.string.select_form_compos_table_count); Cursor cursor = database.rawQuery(sql, null); cursor.moveToFirst(); if(cursor.getCount() 0) int count = 0; count+; players.add(new SkyGamePlayer(count,cursor.getString(1),cursor.getInt(2); while(cursor.moveToNext() count +; players.add(new SkyGamePla

26、yer(count,cursor.getString(1),cursor.getInt(2); return players; public void delete() String sql = context.getResources().getString(R.string.delete_from_compos_table); if(!this.database.isOpen() this.helper.onOpen(this.database); try this.database.beginTransaction(); this.database.execSQL(sql); this.

27、database.setTransactionSuccessful(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); finally this.database.endTransaction(); public void close() if(this.database.isOpen() this.database.close(); 图4-2 Android中Activity生命周期状态图4.2.2 SQLite数据库SQLite,是一款轻量级的关系型数据库。由于它占用的资源非常少,

28、所以在很多嵌入式设备都是用SQLite来存储数据。Android作为目前主流的移动操作系统,完全符合SQLite占用资源少的优势,故在Android平台上,集成了一个嵌入式关系型数据库SQLite。由于SQLite是轻量级的关系型数据库,它支持的SQL语句也是有限的,在使用SQL语句获得前6名玩家的信息时直接使用了SQLite不支持的TOP语句引起了异常。在查阅相关资料后才发现SQLite不支持TOP语句,因此使用语句DESC LIMIT来代替TOP达到了自己想要的只获得表compositor_table中的score字段值最大的前六个记录信息。SELECT * FROM compositor

29、_table ORDER BY score DESC LIMIT 64.3 游戏界面设计4.3.1开始界面使用SurfaceView将图4-3中的未被按下的按钮和图4-5游戏开始界面背景图片绘制成游戏开始界面图4-6。图4-3 未被按下的按钮图标集图4-4 被按下的按钮图标集图4-5 开始界面背景图片图4-6 开始界面4.3.1.1 AndroidManifest.xmlAndroid应用程序中,并没有像C+和Java这样有main函数来作为应用程序的入口。Android应用程序提供的是入口Activity,而非入口函数。AndroidManifest.xml文件中定义了整个Android应用

30、所包含的Activity.在AndroidManifest.xml中将SkyGameStartActivity设置为当前SkyGame启动时,默认加载的Activity,代码如下: 4.3.1.2 Activity中注册layout在SkyGameStartActivity的onCreate方法中设置要显示的layout,方法如下所示:protected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layou

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1