1、本科毕业论文(20 届)基于 Java 的飞机大战游戏的设计与实现所在学院 专业班级 计算机科学与技术 学生姓名 学号 指导教师 职称 完成日期 年 月 摘 要飞机大战是电脑游戏发展史中早期最为经典的游戏之一,经常能在掌上游戏机、手机以及电脑上见到这个游戏。不过,以往常见的飞机大战游戏是二维平面上的,并且大多以黑白的形式出现,当然在电脑上可以看到多种颜色的飞机大战。Java 自面世后就非常流行,发展迅速,对 C+语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人 PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专
2、业社群。在全球云计算和移动互联网的产业环境下,Java 更具备了显著优势和广阔前景。本游戏是一个基于 java 的飞机大战游戏,利用 Eclipse 平台实现经典的飞机大战游戏。游戏主要涉及了游戏状态控制功能、游戏难度的调整、游戏界面绘画功能、玩家游戏控制功能,最终展示了游戏开发的基本开发过程和设计思路。关键词:飞机大战;游戏;java;Eclipse 平台iiDesign and implementation of airplane wargame based on JavaAbstractLightning is the history of the development of comp
3、uter games in the early one of the most classic game, often on a handheld game consoles, mobile phone and computer to see this game. However, the previous common lightning game is two-dimensional plane, and mostly in black and white, in the course of the computer can see lightning in color.Since Jav
4、a is very popular after the launch, the rapid development of the C + + language to form a strong impact. Java technology has excellent versatility, efficiency, platform portability and security, widely used in personal PC, data center, game consoles, scientific supercomputers, cell phones and the In
5、ternet, also has the worlds largest developer of professional community . In the world of cloud computing and mobile Internet industry environment, Java and more have a significant advantage and broad prospects.This game is a game based on the realization of Java lightning, lightning classic game ba
6、sed on Eclipse platform. The game is mainly involved in the game state control function, the difficulty of the game, the game interface to adjust the drawing function, game player control function, finally shows the basic development process of game development and design ideas.Keywords: lightning;
7、game; Java; Eclipse platform目 录摘 要 .iAbstract.ii1 引言 .11.1 项目背景 .11.2 国内外研究现状 .11.3 项目主要工作 .11.4 本文组织结构 .22 开发平台与开发技术 .32.1 Eclipse.32.2 Eclipse 平台 .32.3 Java.42.4 Java 语言的特点与优势 .52.5 java 技术在游戏开发中的应用 .62.6 UML.83 飞机大战游戏模块设计 .93.1 用户需求分析 .93.2 可行性分析 .93.3 总体设计原则 .103.4 功能模块设计 .113.4.1 游戏状态控制功能 .113.
8、4.2 游戏难度的调整 .113.4.3 游戏界面绘画功能 .113.4.4 玩家游戏控制功能 .113.5 游戏难点分析 .114 飞机大战功能实现 .124.1 游戏首页的实现 .124.1.1 界面实现 .124.1.2 流程图 .134.1.3 核心代码 .144.2 游戏开始模块的实现 .154.2.1 界面实现 .154.2.2 流程图 .164.2.3 核心代码 .174.3 发射子弹模块的实现 .184.3.1 界面实现 .184.3.2 流程图 .194.3.3 核心代码 .204.4 积分模块的实现 .224.4.1 界面的实现 .224.4.2 核心代码 .234.5 碰
9、撞逻辑 .264.5.1 碰撞画面的实现 .264.5.2 核心代码 .274.6 游戏玩家与 BOSS 的血条 .284.6.1 玩家血条和 BOSS 血条的实现 .284.6.1 核心代码 .294.7 游戏操作的实现 .304.7.1 核心代码 .305 系统测试 .315.1 测试的定义及其重要性 .315.1.1 测试的定义 .315.1.2 测试的重要性 .315.2 测试实例的研究与选择 .315.3 测试结果 .32总结和展望 .33参考文献 .34致 谢 .35外文原文 .36中文翻译 .4211 引言1.1 项目背景90 年代的我们,对小时候的一些经典街机游戏肯定是印象深刻
10、,像 “飞机大战” 、“超级玛丽” 、 “坦克大战”等,这些游戏伴随了我们童年,怀旧经典,重温这些经典的游戏,我选择“飞机大战”作为设计的项目。而基于 JAVA 语言开发“飞机大战游戏” ,也是对大学知识的一次运用,本次的项目不但可以重拾儿时的回忆,也同样是对大学知识的一次回顾与复习。飞机大战游戏拥有所有游戏共通的独立成份。它有一个游戏循环(这个过程被反复执行直到游戏退出) 。这个游戏循环读取玩家的输入,处理这个输入,然后更新游戏的元素(下落的 Enemy airplane) ,并且检查是 Hero airplane 的输赢(本机是否空血) 。以后要做的所有的简单的游戏都要用到这些东西,所以学
11、习这个过程并且实现它是非常重要的。当第一次完成它之后,以后再做游戏时就能看出那个游戏有多难以及要花多长时间。如果没有完整的完成过这些,哪怕一次,就永远不能完整地正确领会其中的每个元素。当做大的项目时,就更不能确定其复杂性及所要的时间。如果甚至不能正确地领会这整个过程(因为你没能完成它) ,可能是没能建立一个合适的时间表或估计合适的时间,更有可能的是不够努力。1.2 国内外研究现状Java 作为一门成熟的编程语言,以其简单性、可移植性和平台无关性等优点,得到了广泛地应用,对于游戏开发来说,由于涉及到比较复杂的情况,开发过程很多时候是一个不断修改的过程,可以方便的修改游戏内容是十分关键的。由于其虚
12、拟机特性,java 本身就可以用来编写游戏脚本,目前也有例如 beanshell、groovy 等脚本语言可以无缝的和 java 语言进行交互,这些都极大的方便了 java 游戏编程。由于 Java 语言的的可移植性和平台无关性等优点,如今,国内外对于 Java 在游戏设计开发的运用有两大方面:一个是手机游戏,另一个就是 web 上的游戏开发,可见 Java 语言在游戏开发方面有其优点和独特性。2如今正由于智能手机游戏市场发生重大的变化,ios 不再独霸于市场,Android 的市场正在不断的扩散。据国外媒体最新报道,Android 智能机的市场份额为 68%,远高于苹果的 17%,用 Jav
13、a 语言开发游戏也迎来了黄金期,特别是在手机游戏开发上。Java 语言称霸企业级应用这么多年,事实证明了它非常适合于开发大型软件。如今 Java 在游戏开发领域,也正开始展露头脚。1.3 项目主要工作本次的开发内容基于 JAVA 的飞机大战游戏就是游戏与 JAVA 编程语言相结合的例子。从游戏的基本玩法出发,主要就是 Hero airplane 和 Enemy airplane 的对决,首先应该有个界面来装载整个游戏,然后就是 Hero airplane 的移动方式(鼠标移动或键盘移动) ,接下来就是 Hero airplane 子弹的生成,然后是 Enemy airplane 的出现方式,然
14、后 Enemy airplane 的子弹生成,最后是 Hero airplane 与 Enemy airplane的对战结果。该游戏要满足以下功能性需求:(1)游戏状态控制功能 游戏的状态控制包括运行、暂停、恢复及结束游戏,首先进入游戏的加载页面,在游戏进行时,你需要去做其他事情但又不想让游戏结束,你可以选择暂停游戏,当你忙完事情你可以选择恢复游戏,当游戏结束时会提示。(2)游戏难度的调整 玩家越往后游戏的难度越高,敌机的数量越多、敌机的速度越快、敌机的子弹数量越多且越快。(3)游戏界面绘画功能在右上角显示游戏难度,当前游戏得分,与本机血条,游戏主屏主要用来输出用户对 Hero airplan
15、e 的控制与 Enemy airplane 的动作显示。(4)玩家游戏控制功能玩家可以通过控制鼠标或者键盘来控制友机的移动和友机子弹的发射。31.4 本文组织结构文本的具体内容和组织结构简述如下:第一章介绍了本文的研究及应用背景。第二章介绍了设备平台的基本特征和软件开发环境的功能特性。第三章主要进行了用户的需求分析,并根据分析结果采用面向对象的设计方法,对记事本软件进行了模块设计。第四章主要实现了飞机大战游戏的功能模块,对核心功能做了集中阐述,对核心代码做了解释和说明。第五章对实现的程序进行了模块测试和系统测试,评价了软件的功能,提出了软件的优点和不足。42 开发平台与开发技术本章主要介绍软件
16、开发平台如何选择,以及开发平台的合理配置。本软件涉及到的开发平台是 Eclipse,开发技术是 JAVA 技术。下文详述了选择的理由和配置的方法。2.1 Eclipseeclipse-galileoEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Kit,JDK) 。虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Ecl
17、ipse 还包括插件开发环境(Plug-in Development Environment,PDE) ,这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+ 、 COBOL、PHP 等编程语言的插件已经可用,或预计
18、将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。基于 Eclipse 的应用程序的一个突出例子是 IBM Rational Software Architect,它构成了 IBM Java 开发工具系列的基础。Eclipse 是著名的跨平台的自由集成开发环境(IDE) 。最初主要用来 Java 语言开发,通过安装不同的插件 Eclipse 可以支持不同的计算机语言,比如 C+和 Python 等开发工具。Eclipse 的本身只是一个框架平台,但是众多插件的支持使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性。许多软
19、件开发商以 Eclipse 为框架开发自己的 IDE。5Eclipse 最初由 OTI 和 IBM 两家公司的 IDE 产品开发组创建,起始于 1999 年 4 月。IBM 提供了最初的 Eclipse 代码基础,包括 Platform、JDT 和 PDE。Eclipse 项目 IBM发起,围绕着 Eclipse 项目已经发展成为了一个庞大的 Eclipse 联盟,有 150 多家软件公司参与到 Eclipse 项目中,其中包括 Borland、Rational Software、 Red Hat 及Sybase 等。Eclipse 是一个开放源码项目,它其实是 Visual Age for
20、Java 的替代品,其界面跟先前的 Visual Age for Java 差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。随后还有包括Oracle 在内的许多大公司也纷纷加入了该项目,Eclipse 的目标是成为可进行任何语言开发的 IDE 集成者,使用者只需下载各种语言的插件即可。2.2 Eclipse 平台Eclipse 是著名的跨平台的自由集成开发环境(IDE) 。最初主要用来 Java 语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如 C+和 Python 的开发工具。Eclipse 的本身只是一个框架平台,但是众多插件
21、的支持使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性。许多软件开发商以 Eclipse 为框架开发自己的 IDE。Eclipse 最初由 OTI 和 IBM 两家公司的 IDE 产品开发组创建,起始于 1999 年 4 月。IBM 提供了最初的 Eclipse 代码基础,包括 Platform、JDT 和 PDE。目前由 IBM 牵头,围绕着 Eclipse 项目已经发展成为了一个庞大的 Eclipse 联盟,有 150 多家软件公司参与到 Eclipse 项目中,其中包括 Borland、Rational Software、Red Hat 及 Sybase等。Eclipse 是一个开发源码项目,它其实是 Visual Age for Java 的替代品,其界面跟先前的 Visual Age for Java 差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle 在内的许多大公司也纷纷加入了该项目,并宣称 Eclipse 将来能成为可进行任何语言开发的 IDE 集大成者,使用者只需下载各种语言的插件即可。 2.3 Java Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun