基于Java的飞机大战游戏的设计与实现论文

源码下载  http://www.byamd.xyz/hui-zong-1/

摘 要

现如今,随着智能手机的兴起与普及,加上4G(the 4th Generation mobile
communication
,第四代移动通信技术)网络的深入,越来越多的IT行业开始向手机行业转移重心。而手机行业中游戏方面的利润所占比重较大,并且手机游戏大多数则是由Java语言开发研制的。所以我想顺应时代发展,用学到的Java知识对游戏进行一次深入的了解与创作。

Java语言在我们大学学习中占了很大的比重,其优点甚多:面向对象,可靠,安全,多平台可移植,高性能,多线程等。面向对象是相对于c语言的面向过程来说的,在面向对象编程中,我们用Java去新建一个对象,调用其方法就能实现我们的目标,并不需要了解这个对象的方法的具体实现过程;Java的可靠安全特点体现Java不支持指针,禁止第三方访问,杜绝了外部风险。所以使用Java开发游戏,是一个正确的选择。

大学学习即将结束,在毕业之际,我想用我4年里学习的知识为自己编写一个属于自己的游戏——飞机大战游戏,为我的大学生活画上圆满的句号。

关键词**:**Java游戏;面向对象;可靠安全;多线程

Design And Implementation Of Airplane Wargame Based On Java

Abstract

Nowadays, with the emergence and popularization of smart phones, plus 4 g (the 4
th Generation mobile communication, the fourth Generation mobile communication
technology) the development of the Internet, more and more in the IT industry
began to shift to the mobile phone industry center of gravity. Aspect of the
game of the mobile phone industry profits account for a large proportion, and
most mobile game is developed by Java language. So I want to keep up with the
development of The Times, use Java knowledge for an in-depth understanding of
the game and creation.

Java language learning in our universities accounted for a large proportion of
its many advantages: Object-oriented, reliable, secure, multi-platform portable,
high-performance, multi-threading. Object-oriented process-oriented with respect
to the terms of the c language, object-oriented programming, specifically we use
Java to create a new object, call its methods will be able to achieve our goal,
we do not need to know the object’s method of implementation ; reliable safety
features reflect Java Java does not support pointers to prohibit third-party
access, to eliminate the external risk. Therefore, the use of Java development
aircraft war game, is the right choice.

University coming to an end, on the occasion of the graduation, I want to use my
four years studying knowledge and made themselves a game of their own - Aircraft
war game for my college life painting satisfactory conclusion.

Keywords: Java game; object oriented; reliable and secure; multi thread

1 引言

1.1 项目背景

90后的我们,童年最开始接触电子游戏是在游戏厅,那时候的飞机大战游戏机前,往往人山人海,绚丽多彩的画面,带感操作让人沉醉不能自拔。再后来,珍珠港(Pearl
Harbor),虎虎虎(Tora! Tora!
Tora!)等空战电影中激烈的空战和飞机在天空中的英姿让我彻底爱上了空战,所以毕业设计我选择了与飞机战斗有关——基于Java的飞机大战游戏的设计与实现的毕业设计。

而选基于Java的飞机大战游戏的设计与实现为题,是对大学期间学到知识的一次实践运用,也是对自己大学四年学习成果的一次检验。

柏拉图:“游戏是一切幼子生活和能力跳跃需要而产生的有意识的模拟活动。”亚里士多德给游戏的定义是:“游戏是劳作后的休息和消遣,本身并带有任何目的性的一种行为活动。”可以说,游戏是一种一直存在的社会现象,有了人类就有了游戏,人类与游戏息息相关。游戏也随着人类的进步有了新的发展。

PC机刚开始普及的时候,游戏并不能被广泛接受。最主要的原因就是不能充分发挥PC机的性能,即游戏程序不能最大化使用PC机的硬件资源,导致PC机的早起游戏画面差,操作感僵硬,可玩度不高,所以不被人们所接受。但是随着切硅的技术的提升导致CPU性能的飞跃及Java语言的开发,游戏程序对硬件资源的利用率的提高,现在游戏的各个方面都有了质的飞跃。比如20世纪末,暴雪公司下的《星际争霸1》掀起全球星际流,其操作感和画面打击感及游戏可玩性都有很大的提升。当然,除了游戏本身的优秀质量以外,可以较广的支持不同的硬件设备的功能也不容忽视,高中低端PC机都有不错的流畅度。

而飞机大战类游戏中起步较早的还要数由日本公司Cyber
Front研制并发行的雷电系列,该系列操作简单,节奏明快,因此,可以说成是飞机大战游戏类的经典之作。该系列下的《雷电3》在2016年中旬从PS2平台移植到PC机平台上后,更成为当时风靡一时的游戏。

《雷电3》一共有8个关卡,分别是病变的森林,玄武岩城市。岩石港湾,金色的沙漠,原子核工厂,小行星带,大型宇宙舰和地方总部。雷电3的关卡不多,而且流程比较短,所以主要还是以刷新分数上限,挑战操作极限的目的为主,考验玩家的手速和反应能力,是一款极为经典的游戏,即使过去了十几年,《雷电3》仍然广受欢迎,各大应用商店的点击下载量还是很高,衍生出来的游戏更是数不胜数。

1.2 国内外研究现状

Java语言经过多年的发展,已经十分成熟。Java语言称霸企业级应用这门多年的事实证明了这门语言适合开发各种项目。当Java语言的运行效率随着发展再次提升了一大截后,Java语言的一系列优势就更加明显的体现出来了,比如:语言严谨,高抽象,可读性强等。

对于游戏开发,由于涉及到各种复杂的问题情况,经常遇到新的问题,所以在开发过程中,需要进行对代码进行不断的修改添加,这就需要可以随时随地的修改代码。而Java具有虚拟机特性,Java游戏本身也可以用Java来写,例如,目前的BeanShell,Groovy和其他脚本语言可以很容易地,无缝地与Java语言的互动,我们可以通过脚本随时对游戏进行添加与删除,不必要重新开发某个模块。这是大大方便了Java游戏编程。

在游戏的发展中涉及到了大量的Java技术,某些技术现在已经淘汰,但是也有些技术一直在使用。如Sun公司较早推出了3D技术–
Java3D,是一个高度封装的API,OpenGL和Direct
3D都是基于Java3D的,可以说是最有名的3D
Java技术;Jogl函数则是opengl接口对Java的实现;lwjgl函数(light weight Java game
library)是将游戏图形(opengl)、音效(openal)、控制输入集合为一,以成为Java界的directx(不是direct3d)而努力;joal函数则是Java对openal的一个绑定,是Java音效的一个解决方案;jinput函数是Java对非标准输入设备(游戏手柄,操纵杆)的解决方案;
Project Wonderland是Sun开发的一个3d虚拟世界构建工具等。

由于VR(Virtual
Reality)虚拟现实的发展,对游戏的发展影响巨大。科幻电影小说中的科幻游戏玩法有可能成为现实,未来游戏也许不需要鼠标键盘,只需要一个类似VRBox的头盔设备即可完成指令的输入与输出。

1.3 项目主要工作

本次项目的题目——基于Java的飞机大战游戏的设计与实现,主要目的是实现飞机大战这个游戏。期望结果:游戏无BUG(现在人们将在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题统称为BUG——漏洞),简单易上手,老少皆宜,让玩家“玩不释手”。

从游戏的玩法来说,主要就是我方飞机(Hero airplane)和敌方飞机(Enemy
airplane)的对决,首先是游戏的开始界面与结束界面,然后就是我方飞机(Hero
airplane)的移动方式(鼠标移动或者键盘移动,我打算选择鼠标移动,因为鼠标移动可以转移到手机上,现在大多数手机都没有键盘,基本靠手指滑动操作),接下来就是我方飞机(Hero
airplane)子弹的生成,然后是敌方飞机(Enemy
airplane)的出现坐标的选择,然后飞机与子弹防碰撞,飞机与飞机的防碰撞,最后是我方飞机(Hero
airplane)与敌方飞机(Enemy airplane)的对战结果。

该游戏要满足以下功能性需求:

(1)游戏状态控制功能

游戏的状态控制包括运行、暂停、恢复及结束游戏,首先是游戏的开始页面,在游戏正在进行时,如果你有其他的事情又不想结束游戏你可以将鼠标移出游戏界面或者鼠标在游戏界面单击即可暂停游戏,当你的其他事情解决后你还可以选择恢复游戏,继续玩下去,当游戏结束时会显示游戏结束界面。

(2)游戏难度的调整

玩家随着玩游戏的时间的增加,敌方飞机的数量会增加,出现的频率会有所提高,移动速度也会提高。

(3)游戏界面绘画功能

在右上角显示游戏时间(游戏难度于时间成正比,即游戏时间越长难度越高),玩家游戏得分,与我方飞机生命值,游戏主屏用来显示玩家对我方飞机(Hero
airplane)的控制与敌方飞机(Enemy airplane)的出现及移动的显示。

(4)玩家游戏控制功能

玩家可以通过控制移动鼠标或者键盘来控制友机的移动。

1.4 本文组织结构

本文的组织结构如下:

第一部分介绍了本文的国内外背景。

第二部分介绍了开发游戏项目涉及到的软件平台与开发语言。

第三部分介绍了项目的需求分析。

第四部分介绍了项目各个模块的实现。

第五部分介绍了对软件测试的过程及结果,找到项目的优缺点。

2 开发平台与开发技术

本章主要介绍软件开发平台如何选择。本软件涉及到的开发平台是IntelliJ
IDEA
,开发技术是Java技术。下面将会介绍一下选择IntelliJ
IDEA
的理由。

2.1 IntelliJ IDEA简介

IntelliJ
IDEA
是一个Java的
集成开发环境(IDE),用于开发各种项目的计算机软件。它是由JetBrains公司(原名的IntelliJ)开发的,个人版被Apache
2授权
许可,商业版则是作为专业版,可以用来进行大型的商业开发。

IntelliJ
IDEA
的第一个版本发布于2001年1月,并且是第一个具有先进的代码导航和一个代码重构的综合能力的Java
IDE。

IntelliJ IDEA对于系统的要求:微软的Windows
10/8/7 / Vista/ 2003 / XP(incl.64位),最少1 GB内存,2 GB RAM(推荐),300
MB硬盘空间+至少1 GB的高速缓存,1024×768的最小屏幕分辨率。

IntelliJ IDEA特点:

1.编码提示 IDE可以进行代码提示,比如:结合上下文对当前代码进行补充;代码导航,可以快速定义到某个声明过的类;代码错误提示,对于代码错误的地方进行提示并且提供有效的解决方案。

2.内置工具和整合 IDE提供了构建与打包工具,如grunt , bower , gradle , 和 SBT 。它支持各个版本的控制系统,如 GIT , Mercurial , Perforce , and SVN 。可以直接从IDE对SQL ServerORACLEPostgreSQLMySQL数据库进行访问。

3.各种各样的插件系统 IntelliJ IDEA支持插件,通过插件可以对IDE添加额外的功能。无论是从IntelliJ IDEA的插件库网站或通过IDE的内置插件,都可以进行搜索插件和插件的安装。目前的IntelliJ IDEA个人版则拥有1495个可用的插件,其中IDE的旗舰版则拥有1626个可用的内置插件。

2.2 IntelliJ IDEA与Eclipse 的比较

我们大学学习中,对于Java的开发工具一般都是选择
Eclipse,MyEclipse开发工具。Eclipse是Sun公司自己开发的Java开发工具,优点在于简洁没有插件,用户可以根据自己的需求自己寻找安装合适的插件,同时这也是它的缺点,没有提供插件,某些开发就会让人感觉不方便,并且插件都是个人开发,并不是适合所有人。MyEclipse则需要收费(虽然网上有破解版,但是并不提倡,支持正版从你我做起),它实际上是将eclipse和其他常用插件集成在一起的一个庞大开发工具,优势就是常用插件齐全,不用自行下载安装,当然支持自己扩展,劣势就是插件太多导致软件繁重,运行时占用系统太多资源,当然他是收费的(对于学生来说这个是致命的)。

IntelliJ IDEA更为优秀的原因是:IntelliJ
IDEA
更为智能,更贴合用户。以下进行详细说明。

  1. 调试
    作为调试过程的一部分,我们通常希望选中一些表达式来查看它的值。在Eclipse中,你需要选择这种表达,并且准确选择整个表达式是很重要的,否则在Eclipse中无法评估它。在IntelliJ
    IDEA
    中,你只需按下有关快捷键,即可看到表达式的值。

  2. 自动完成
    自动完成功能的好坏是区分任何IDE的标杆。在这方面的感觉的背景下,IntelliJ
    IDEA
    则有一个定性的优势。IntelliJ
    IDEA
    不等待任何按键,比如,当你输入一个方法函数是,它立刻会明白方法函数希望将某个定义过的类作为第二个参数,这时会有一个静态变量在类名处呈现可见状态。对于用户来说,提供建议和想法是一个的确不错的做法。但是Eclipse做不到,Eclipse只能理解你当前输入的字符,并不能与前边的联系起来。

  3. 重构 专业编程人员如果利用IntelliJ
    IDEA
    的IDE提供的重构将会事半功倍。所有IDE提供了一个用处非常大的重构。但话又说回来,IDEA的重构是非常智能的。它知道你想要什么,并提供了大多数情况下适用的不同的建议选项。

如果我们选择一个Java IDE作为开发工具,那么IntelliJ
IDEA
肯定比Eclipse的更好。这不只是一个个人品味的问题。客观来说IDEA的确是第一选择,它可以让你快速,方便地编写和修改代码,建议适当的函数,提供适当的方法。它不要求你准确选择表达式,但会猜测你想要做什么,。

2.3 Java

Java是一个通用计算机编程语言,是并发的,类型,面向对象的。它的目的是让应用程序开发者“一次编写,到处运行”,也就是说Java可以在任何设备上开发,也可以在任何装有Java虚拟机(JVM)设备上运行,而无需再次编译。

Java应用程序通常被编译成字节码可以在任何装有Java虚拟机上(JVM)的计算机体系结构上运行。

截至2016年,Java是最流行的编程语言之一,特别是对于客户端,服务器的Web应用程序,有报道称有900万开发者在使用Java语言进行开发。Java是由詹姆斯·高斯林在Sun
Microsystems(这已经被甲骨文公司收购)创造的,并于1995年发布,作为Sun
Microsystems的Java平台的核心组件开发,Java语言多从C和C ++中语法派生出来的。

最初有Sun公司对参考实现Java的编译器,虚拟机和类库下发专用许

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Java飞机大战游戏设计实现设计软件源码+word毕业论文文档。基于Java飞机大战游戏主要需要我方飞机和敌方飞机,还有子弹,特殊nPC,开始背景,结束背景,以及背景音乐。我方飞机可以随意移动,敌方飞机无规律出现。游戏玩家通过鼠标移动控制飞机移动,我方飞机游戏开始时就一直能发射子弹,当我方子弹碰到敌方飞机时,敌方飞机消失。当玩家飞机碰到敌方子弹时,生命值减一,直到玩家飞机生命值为一时,游戏结束。基本模块包括:游戏状态控制功能模块、游戏难度的调整模块、游戏界面绘画功能模块、玩家游戏控制功能模块等。本系统结构如下: (1)游戏状态控制功能模块:游戏的状态控制包括运行及结束游戏,首先进入游戏的开始页面,在游戏进行时,玩家必须躲避或者击落敌方飞机,玩家飞机的生命值降低为0的时候游 戏就会结束,弹出游戏结束界面 (2)游戏难度的调整模块:玩家玩的时间越长游戏的难度越高,敌方飞机的数量越多、敌方飞机出现的频率越高,玩家保证飞机的存活的难度越高,操作难度相应也高。 (3)游戏界面绘画功能模块:左上角会显示玩家飞机当前生命值,游戏时间,当前分数,其他地方用来输出玩家对我方飞机的控制与敌方飞机的动作显示 (4)玩家游戏控制功能模块: 玩家可以通过控制鼠标或者键盘来控制方飞机(Hero airplane)的移动。 目 录 1 引言 1 1.1 项目背景 1 1. 2 国内外研究现状 3 1.3 项目主要工作 4 1.4 本文组织结构 6 2 开发平台与开发技术 7 2. 1 IntelliJ IDEA简介 7 2. 2 IntelliJ IDEA与Eclipse 、MyEclipse的比较 8 2. 3 Java 10 3 可行性研究 13 3. 1 技术可行性 13 3. 2 经济可行性 13 3. 3 操作可行性 14 3. 4 用户使用可行性 14 3. 5 法律可行性 14 4 需求分析 15 4. 1 系统需求概述 16 4. 2 功能模块设计 17 4.2.1 游戏状态控制功能模块 17 4.2.2 游戏难度的调整模块 17 4.2.3 游戏界面绘画功能模块 17 4.2.4 玩家游戏控制功能模块 17 4. 3 游戏难点分析 18 4.3.1 绘图美化 18 4.3.2 多线程技术的实现 18 4.3.3 防碰撞问题的解决 18 4.3.4 动画的实现 18 5 飞机大战功能实现 19 5.1 模型图 19 5.2 软件功能模块 19 5.3 游戏首页的实现 20 5.3.1 界面实现 20 5.3.2 流程图 21 5.3.3 核心代码 22 5.4 游戏开始模块的实现 24 5.4.1 界面实现 24 5.4.2 流程图 25 5.4.3 核心代码 25 5.5 发射子弹模块的实现 27 5.5.1 界面实现 27 5.5.2 流程图 28 5.5.3 核心代码 29 5.6 积分模块的实现 33 5.6.1 界面的实现 33 5.6.2 核心代码 34 5.7 防碰撞逻辑 37 5.7.1 核心代码 37 5.8 游戏操作的实现 39 5.8.1 核心代码 39 5.9 特殊NPC蜜蜂 41 6 系统测试 42 6.1 测试的定义及其重要性 43 6.1.1 测试的定义 43 6.1.2 测试的重要性 44 6.2 测试方法 46 6.3 测试结果 50 7 结论 51 参考文献 52 致谢 54 外文文献 55 中文翻译 63 1 引言 1.1 项目背景 90后的我们,童年最开始接触电子游戏是在游戏厅,那时候的飞机大战游戏机前,往往人山人海,绚丽多彩的画面,带感操作让人沉醉不能自拔。再后来,珍珠港(Pearl Harbor),虎虎虎(Tora! Tora! Tora!)等空战电影中激烈的空战和飞机在天空中的英姿让我彻底爱上了空战,所以毕业设计我选择了与飞机战斗有关——基于Java飞机大战游戏设计实现的毕业设计。 而选基于Java飞机大战游戏设计实现为题,是对大学期间学到知识的一次实践运用,也是对自己大学四年学习成果的一次检验。 柏拉图:“游戏是一切幼子生活和能力跳跃需要而产生的有意识的模拟活动。”亚里士多德给游戏的定义是:“游戏是劳作后的休息和消遣,本身并带有任何目的性的一种行为活动。”可以说,游戏是一种一直存在的社会现象,有了人类就有了游戏,人类与游戏息息相关。游戏也随着人类的进步有了新的发展。 PC机刚开始普及的时候,游戏并不能被广泛接受。最主要的原因就是不能充分发挥PC机的性能,即游戏程序不能最大化使用PC机的硬件资源,导致PC机

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值