完整版基于Android操作系统的飞机大战手机游戏毕业设计40设计41Word文档格式.docx

上传人:b****8 文档编号:22681496 上传时间:2023-02-05 格式:DOCX 页数:34 大小:1.24MB
下载 相关 举报
完整版基于Android操作系统的飞机大战手机游戏毕业设计40设计41Word文档格式.docx_第1页
第1页 / 共34页
完整版基于Android操作系统的飞机大战手机游戏毕业设计40设计41Word文档格式.docx_第2页
第2页 / 共34页
完整版基于Android操作系统的飞机大战手机游戏毕业设计40设计41Word文档格式.docx_第3页
第3页 / 共34页
完整版基于Android操作系统的飞机大战手机游戏毕业设计40设计41Word文档格式.docx_第4页
第4页 / 共34页
完整版基于Android操作系统的飞机大战手机游戏毕业设计40设计41Word文档格式.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

完整版基于Android操作系统的飞机大战手机游戏毕业设计40设计41Word文档格式.docx

《完整版基于Android操作系统的飞机大战手机游戏毕业设计40设计41Word文档格式.docx》由会员分享,可在线阅读,更多相关《完整版基于Android操作系统的飞机大战手机游戏毕业设计40设计41Word文档格式.docx(34页珍藏版)》请在冰豆网上搜索。

完整版基于Android操作系统的飞机大战手机游戏毕业设计40设计41Word文档格式.docx

theWorldWarIIaircraftrollingscreenactiongameone,incorporatingmanyactiongamesuniquetechnology,andsmoothpicture,soundrock.Thenetworkisdevelopingrapidly,apuzzlegameiswidelyappliedtothenetworktheplatform.Fromthenetworktheplatformgame,throughtheEclipseAndroidSDKJavalanguagepreparedbythe"

WorldWarIIaircraft"

.

ThispaperelaboratedontheplatformofAndroid,object-orientedsoftwaredevelopmentthoughttotheWorldWarIIaircraftgamesystemanalysis,designandimplementationprocess.Inthepracticeoftheprojectprocess,themainuseofthefollowingtechniques:

thelayoutofthemainmobilephoneusingXMLdesign,proceduresandsubmodulelifecyclemanagementusedintheActivityprocesscontrol,thegamescreenisupdatedusingthemobilephone2Dgraphicsprogramming.Inthispaper,thefronthalfpartofbriefintroductionofsystemrelatedindustryinformationandbasictechnicalknowledge,thesecondpartoftheeachmoduleofthesystemusedintherealizationofthekeytechnologyforacomprehensiveintroduction.

Keywords:

scrollinggame;

WorldWarIIaircraft;

mobilephonegames;

Androidplatform

一、绪论…………………………………………………………………5

二、相关研究综述…………………………………………………………6

(一)关于java语言………………………………………………6

(二)关于Android……………………………………………………8

三、系统开发环境及相关技术……………………………………………10

四、游戏所需类的分析与实现……………………………………………11

(一)游戏的框架简介…………………………………………………11

(二)游戏界面的框架简介……………………………………………12

(三)各个类的简要介绍…………………………………………………13

五、游戏界面展示…………………………………………………………22

总结……………………………………………………………………27

致谢………………………………………………………………………28

参考文献…………………………………………………………………29

前言

随着3G移动网络应用的推广,手机游戏的规模、复杂程度日益增强;

其技术手段、设计思想、系统体系结构都发生了深刻的变化。

手机操作系统正朝着高处理能力、多功能、智能化的方向发展。

近年来,网络文化市场发展很快,随着互联网的迅速普及、宽带的接入社区和家庭,我国网络游戏市场发展迅速并进入了一个高速增长期,并已经创造了较大的产值,带动了相关产业的发展。

现在,游戏的类型也由最初的动作游戏和简单益智游戏向更复杂、更高智力,更具真实性的游戏发展。

目前的游戏种类繁多,包括角色扮演、仿真模拟类、人工智能、休闲类、渲染类、网络类等等,甚至有的游戏包含了好几种类型。

机战类游戏一直以来都很多。

但仿真模拟类的游戏却有不少,现在休闲类的技术广泛的应用到很多游戏里面等等。

飞机大战游戏是广泛人士喜爱的游戏,通过上下左右键控制方向A键发射子弹,游戏中有加血道具与子弹升级道具。

并有关卡BOSS等着与你死战。

鉴于游戏的对社会的巨大影响力和光辉的发展前景,以及我们自己对游戏爱好,这次的毕业设计我们决定尝试设计和制作一个具有一定可玩性的游戏。

期间,我们收集相关资料、研究同类型的游戏、阅读有关这类型游戏和相关技术性的书籍,通过制作游戏项目来熟悉游戏的制作思路、过程,加深对面向对象编程语言的掌握,培养自己的耐心、细心和考虑问题的全面性,同时解决本课题要完成的问题,如游戏框架如何构建,如何完善游戏的各种功能,如何能让游戏有音乐和音效的实现,如何能让游戏过关,如何能让游戏界面美观,看起来舒服感觉。

一、绪论

1.1研究内容

Android平台飞机大战是基于Android手机平台,运用Java语言编写的一款手机滚屏类射击游戏。

1.2研究意义

Android平台手机游戏的开发的意义在于活动人的思维,使人精神放松,锻炼人的反应能力与应变能力。

1.3研究现状和发展趋势

据Gartner最新数据显示,2010年第二、三季度全球智能手机销售继续大幅增长,其中第三季度安卓占全球智能手机市场的25.5%,仅次于塞班,成为第二大智能手机系统。

2010第二、三季度与去年同期相比,增度分别是15.4%及22%,增势迅猛。

而塞班系统较09年的市场份额,尽管终端销量有大幅度提升,但增势下滑10%,形势非常严峻。

其他操作系统的表现则要平稳很多。

安卓是首款开源代码的操作系统,采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改安卓的SDK软件包。

系统的开源性使其具有良好的拓展性,一方面,为众多移动应用开发者提供了良好的系统性平台,有利于移动应用的集合;

另一方面,终端厂商可以针对自身的特殊需要“定制化开发”。

与此相比,尽管2010年2月,塞班基本完成开源工作,但由于代码臃肿,用户界面设计缺失,塞班的开源并无实际意义,错失发展良机。

我们认为,安卓在全球市场的成长壮大,塞班市场份额不断下跌已成不争事实。

安卓操作系统发展迅猛主要得益于免费、开源和良好产业运作策略,这三点为安卓在智能手机市场赢得更多的发展机遇。

系统的免费让更多的厂商加入,推动了份额的上升;

代码的开源让更多的开发者进入应用开发;

应用的丰富吸引了更多用户选择,这也是谷歌值得众多厂商学习的地方。

此外,谷歌通过OHA联合众多厂商进行系统研发,不断更新版本,将系统应用推广到更多的终端产品中,确保用户体验持续改善。

二、相关研究综述

2.1关于java语言

Java编程特点

 1、Java语言是简单的。

Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。

另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。

特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。

  2、Java语言是一个面向对象的。

Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。

Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。

总之,Java语言是一个纯的面向对象程序设计语言。

  3、Java语言是分布式的。

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(javanet),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。

Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

  4、Java语言是健壮的。

Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。

对指针的丢弃是Java的明智选择。

Java的安全检查机制使得Java更具健壮性。

  5、Java语言是安全的。

Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。

除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。

  6、Java语言是体系结构中立的。

Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。

这种途径适合于异构的网络环境和软件的分发。

  7、Java语言是可移植的。

这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。

Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。

  8、Java语言是解释型的。

如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。

在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。

  9、Java是高性能的。

与那些解释型的高级脚本语言相比,Java的确是高性能的。

事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。

  10、Java语言是多线程的。

在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。

通常有两种方法来创建线程:

其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。

值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。

线程的活动由一组方法来控制。

Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。

  11、Java语言是动态的。

Java语言的设计目标之一是适应于动态变化的环境。

Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。

这也有利于软件的升级。

另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。

Java语言的优点

1java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。

Java语言的简单性主要体现在以下三个方面:

1.Java的风格类似于C++,因而C++程序员是非常熟悉的。

从某种意义上讲,Java语言是C及C++语言的一个变种,因此,C++程序员可以很快就掌握Java编程技术。

2.Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。

3.Java提供了丰富的类库。

2面向对象可以说是Java最重要的特性。

Java语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。

Java支持静态和动态风格的代码继承及重用。

单从面向对象的特性来看,Java类似于SmallTalk,但其它特性、尤其是适用于分布式计算环境的特性远远超越了SmallTalk。

3另外,为了建立Java作为网络的一个整体,Java将它的程序编译成一种结构中立的中间文件格式。

只要有Java运行系统的机器都能执行这种中间代码。

现在,Java运行系统有Solaris2.4(SPARC),Win32系统(Windows95和WindowsNT)等.Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。

2.2关于Android

2.2.1android构架

Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。

根据Android的软件框图,其软件层次结构自下而上分为以下几个层次:

图2.2Android系统架构

2.2.2XUL界面布局

XUL是一种基于XML的语言,因此需要对XML(特别是XML名称空间)很熟悉。

XUL是英文“XMLUserInterfaceLanguage”的首字母缩写。

顾名思义,它是一种应用XML来描述使用者界面的标示语言。

2.2.3Android的Activity组件

Activity,一般代表手机屏幕的一屏,相当于浏览器的一个页面。

在Activity中添加view,实现应用界面和用户交互。

一个应用程序一般由多个Activity构成,这些Activity之间可互相跳转,可进行页面间的数据传递。

每个Activity都有自己的生命周期。

2.2.4SQLite数据库

在Android平台上,集成了一个嵌入式关系型数据库—SQLite。

SQLite是支持结构化查询的轻量级数据库,能很好得适应于移动设备的应用。

Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。

2.2.5Android2D图形编程

1、SimpleGraphicsinView:

就是直接使用Android已经实现的一些画图操作,比如说images,shapes,colors,pre-definedanimation等等。

这种方式只能画静态或者极为简单的2D图画,对于实时性很强的动画,高品质的游戏都是没法实现的。

2、Canvas:

首先我们要明白这个Canvas是一个2D的概念,是在Skia中定义的。

也就是说在这个方式下还是说的画2D图形。

三、系统开发环境及相关技术

3.1Android开发环境介绍

Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。

只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的JavaSDK(其中包括JRE:

JavaRuntimeEnvironment)。

此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的AndroidSDK。

同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。

(1)JavaSDK

(2)Eclipse

(3)AndroidSDK

3.2Android开发平台搭建

Android开发平台搭建步骤:

①首先到下载Eclipse集成开发环境并且解压,这里推荐下载JavaEE集成版本,可以为平台的搭建省下不少工作。

接着再去站点下载SDK后安装,下载,AndroidSDK1.5后解压。

第一步下载工序就结束了。

②双击Eclipse解压后目录中的eclipse.exe然后启动,选择Eclipse菜单中的Help->

InstallNewSoftware->

选项卡上的AvailableSoftware,点击右侧的“Add”输入后确定,然后在“Workwith”下拉菜单中选择刚才输入的网址。

过一会就会出现一个DeveloperTools选项,勾上以后点击Next以后Eclipse会自动网上查找Android开发工具插件,然后找到AndroidDDMS和AndroidDevelopmentTools,选中这两个点击Finish,Eclipse就会自动下载并安装Android插件了,最后会提示重启Eclipse。

③重启后选择Eclipse菜单中的Windows->

Preferences在左侧的Android项目中SDKLocation中填入AndroidSDK解压后的目录,然后点击Apply。

4在WindowsXP的系统变量中的path变量中添加一个值,该值指向解压后的AndroidSDK目录下的tools文件夹。

四、游戏所需类的分析与实现

4.1游戏的框架简介

图4.1游戏的类框架

1、启动游戏,在PlaneActivity中会先进入加载界面ProcessView,然后后台加载欢迎界面WelcomView,当加载完成后屏幕切换到欢迎界面,并启动WelcoeViewThread线程生成欢迎界面的动画效果。

2、当欢迎动画播放完成后屏幕会停留在选择状态等待玩家操作。

3、当玩家单击“帮助”时将初始化帮助界面HelpView并将其显示出来。

4、当玩家大几“开始游戏”按钮时,屏幕将显示加载界面。

后台将初始化游戏界面GameView,在地图信息类Maps中初始化此关卡中的所有敌机、变枪的道具、补血的道具等。

5、初始化游戏界面的同时启动GameViewBackGroundThread线程,以初始滚动游戏界面的背景图片。

6、当玩家发射炮弹或敌机发射炮弹时会创建Bullet对象,并将其添加到已知的容器中。

7、在游戏过程中如果需要显示爆炸效果,会创建爆炸效果类Explode以及ExplodeThread类来渲染爆炸效果。

8、游戏中所有类中使用的常量全部封装到常量类ConstantUtil类中。

4.2游戏界面的框架简介

图4.2游戏界面的类框架

1、GameView在初始化是会从Maps读取当前关卡的地图信息,包括敌机、补血道具、换枪道具等。

2、在界面初始化的同时,还需要启动MoveThread线程、GameViewBackGroundThread线程、KeyThread线程以及ExplodeThread线程。

3、GameView会在适当的时候从Plane类中读取主战飞机的信息进行绘制。

4、当主战飞机发射子弹时,会创建Bullet对象并添加到指定容器中,此时MoveThread同样需要定时改变子弹对象的位置。

5、在以上过程中,全部都需要PianeActivity的管理与ConstanUtil的参与。

4.3各个类的简要介绍

1、共有类:

Activity的实现类PlaneActivity,该类是通过扩展基类Activity实现的,是整个游戏程序的入口。

键盘监听线程KeyThread,该类为手机键盘的监听线程,每隔一段时间读取一次键盘的状态值,并根据当前键盘状态做出相应的操作

packagewyf.ytl;

publicclassKeyThreadextendsThread{

intspan=20;

//睡眠的毫秒数

intcountMove=0;

//飞机移动的计数器

intcountFine=0;

//飞机发子弹的计数器

intmoveN=3;

//每三次循环移动一下

intfineN=5;

//每五次循环发一次子弹

PlaneActivityactivity;

//Activity的引用

privatebooleanflag=true;

//循环标志

intaction;

//键盘状态码

privatebooleanKEY_UP=false;

//向上键是否被按下

privatebooleanKEY_DOWN=false;

//向下键是否被按下

privatebooleanKEY_LEFT=false;

//向左的键被按下

privatebooleanKEY_RIGHT=false;

//向右的键被按下

privatebooleanKEY_A=false;

//A的键被按下

privatebooleanKEY_B=false;

//B的键被按下

publicKeyThread(PlaneActivityactivity){//构造器

this.activity=activity;

}

publicvoidsetFlag(booleanflag){//设置标志位

this.flag=flag;

publicvoidrun(){//重写的方法

while(flag){

action=activity.action;

//得到当前键盘的状态码

if(action==19){//上

KEY_UP=true;

}else{

KEY_UP=false;

}

if(action==20){//下

KEY_DOWN=true;

KEY_DOWN=false;

if(action==21){//左

KEY_LEFT=true;

KEY_LEFT=false;

if(action==22){//右

KEY_RIGHT=true;

KEY_RIGHT=false;

if(action==29){//A

KEY_A=true;

KEY_A=false;

if(activity.g

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

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

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