Java练手项目6:基于Java的飞机大战小游戏

一、背景

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的头盔设备即可完成指令的输入与输出。

 

二、工作概述

本次项目的题目——基于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)玩家游戏控制功能

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

 

三、需求概述

飞机大战主要需要我方飞机和敌方飞机,还有子弹,特殊nPC,开始背景,结束背景,以及背景音乐。我方飞机可以随意移动,敌方飞机无规律出现。游戏玩家通过鼠标移动控制飞机移动,我方飞机在游戏开始时就一直能发射子弹,当我方子弹碰到敌方飞机时,敌方飞机消失。当玩家飞机碰到敌方子弹时,生命值减一,直到玩家飞机生命值为一时,游戏结束。

基于Java的飞机大战游戏的设计与实现有以下几个模块:

    (1)游戏状态控制功能模块 

    (2)游戏难度的调整模块 

    (3)游戏界面绘画功能模块

    (4)玩家游戏控制功能模块

 

四、功能模块

Java练手项目6:基于Java的飞机大战小游戏

 五、界面演示效果

Java练手项目6:基于Java的飞机大战小游戏

Java练手项目6:基于Java的飞机大战小游戏

Java练手项目6:基于Java的飞机大战小游戏