基于java+swing+GUI的雷电游戏GUI设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于java+swing+GUI的雷电游戏GUI设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。

文章目录:

  • 基于java+swing+GUI的雷电游戏GUI设计与实现(毕业论文+程序源码)
    • 1、项目简介
    • 2、资源详情
    • 3、关键词:
    • 4、毕设简介:
    • 5、源码下载:

1、项目简介

  1. 本游戏基于Eclipse开发平台,以java作为编程语言,整个项目开发旨在模拟雷电游戏的飞机射击游戏。游戏界面的下部是玩家的飞机,可以根据按键控制子弹的发射,上部为敌方飞机,在界面中随机出现。在游戏过程当中,用户飞机的移动是被电脑键盘的方向键所控制的,在整个游戏过程当中,如果用户飞机的子弹与敌方飞机发生相撞时,敌方飞机就会有爆炸的效果产生。游戏中使用到的飞机、子弹均采用对应的类实现。
  2. 基于java的雷电游戏基本功能包括:敌方飞机随机飞行、我方飞机手动控制飞行,射击比拼,游戏闯关等。本系统结构如下:
    (1)雷电游戏状态调整功能:
    在游戏启动时,游戏会自动进行初始化的验证。
    若初始化成功后,界面会自动进行跳转,跳转到游戏开始界面。
    有开始、暂停、恢复游戏等选项。
    (2)雷电游戏难度的升级:
    当进入游戏后,随着时间越来越长,游戏难度会越来越大。
    界面中敌机增多,对飞机造成伤害的子弹增多,游戏难度增加。
    最后会遇到一个血条较长的怪兽,攻击其至血条为0时,自动过关跳转到下一关卡。
    (3)玩家对飞机的控制功能:
    玩家可以对飞机进行操控,通过前后左右键来控制飞机的飞行路线。
    (4)游戏界面绘画功能。

2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:27716个字
包含内容:整套源码+完整毕业论文+答辩PPT+任务书+辅导视频+运行截图


3、关键词:

雷电;电脑游戏;java;Eclipse;


4、毕设简介:

提示:以下为毕业设计的简略介绍,项目源码及完整毕业论文下载地址见文末。

引言
1.1 项目背景
Java语言,实际上就是面向对象的编程语言。对于计算机编程者来说,使用Java最大的好处有两方面,一是就编写程序而言,非常的简单也容易使用,二是它的功能很强大。与此同时,面向对象理论得以很好的实现。“雷电”游戏的毕业设计使我对本科期间所学知识进行了巩固。

省略

1.2 电脑游戏的发展历史
省略

1.3 国内游戏项目研究现状
现在市场上的电脑游戏形形色色,种类杂多。而且游戏程序的设计工具也不相同。大体上包括四类:
一,利用C/C++程序设计语言,大多数大中型游戏都是将C/C++作为程序设计语言开发。C/C++所拥有的特点有运行时速度较快。

二,利用Java程序设计语言。Java程序设计语言在游戏制作方面的优势较为显著,不过这仅仅是相对于小游戏而言的,对于大型网络游戏,使用Java程序设计语言在速度方面的劣势就会越加突显。比较著名的Java语言开发工具有Sun 公司的NetBeans等。目前Java程序设计语言关于游戏的优势领域包括:基于Applet的网页游戏和手机游戏。在当前的手机游戏市场中,平台主要有Android(安卓)、iOS(苹果)、Java平台和Windows平台等。其中,iOS平台由于终端数量限制导致增长较慢,相反,Android平台以其普及度较高的平台终端正处于爆发式的增长期,此外,大多PC上开发的Java游戏也可以移植到Android智能手机平台上。

三,FlashActionScript是一种脚本语言,经常在Flash文件中进行嵌入,主要是对Flash动画流程进行控制。使用FlashActionScript语言设计出的游戏内存较小、画面逼真,因此在小游戏的设计领域迅速走红。2D平面游戏都可以用Flash编写。比如Adobe公司的Flash CS产品。

四,C#程序设计语言是由Java和C++衍化来的程序语言,拥有Java和C++的双重优点,既能够用以面向对象程序设计,同时在运行的速度方面具有较大优势。

现如今,Java语言在游戏开发环节,也正逐步展现出它独有的特色。

1.4 项目主要工作
本次项目开发是基于JAVA的雷电游戏。

此雷电游戏通俗来说就是我方飞机和敌方之间的对决,先要做的应该是通过一个界面来达到装载整个游戏,然后就是我方飞机的移动方式(也就是通过键盘来移动),接着就是生成我方飞机的子弹(依据子弹类型的不同有不同的实现形式),准备就绪后会有敌方飞机的出现,每一个飞机会对应发射不同种类的子弹,最后是我方飞机通过键盘进行移动、射击,显示出游戏结果,然后结束游戏。

该雷电应该满足以下一些要求:
(1)游戏状态控制功能
在进行游戏的设计时,我们应该考虑到,如何进行游戏状态的划分。简单来说,我们需要设置开始,并且要考虑到游戏中断,以及中断后回到游戏中。玩家点击开始之后,程序会调用启动页面的代码,然后进入游戏,在游戏的过程中,玩家如果由于其它工作需要离开时,可以将其中断,比如单击空格键,当需要恢复游戏现场时,再单击空格键,就可以继续游戏,当自己控制的飞机被击毁时,会有游戏结束的显现。

(2)游戏难度的调整
随着游戏的进行、关卡的提高,敌机的速度会越来越快、敌方飞机的数目会越来越多、子弹数量也会越快且越多。此时,带给游戏玩家的视觉冲击变得更强,需要玩家更加冷静地去躲闪以及攻击敌机。

(3)游戏界面绘画功能
游戏主屏主要用来输出用户对我方的控制与敌方的动作显示。在游戏屏幕的左下角有全屏爆破次数的显示,这相当于游戏玩家的特殊技能,可以瞬间清除当前屏幕上的所有敌机以及子弹,在游戏屏幕的右下角会呈现玩家飞机血条,代表着当前我方飞机的状态。当血条格为空时,表示我方飞机已经被击毁,整个雷电游戏也将结束。

(4)玩家游戏控制功能
对于我方飞机的移动和子弹的发射,游戏用户可以通过控制键盘来控制。飞机的左右移动通过键盘的上、下、左、右键来实现,而我方飞机子弹的释放方式有两种,z键会释放出点状子弹,而x键会释放出线状子弹,可供游戏玩家依据需要自行选择。

1.5 本文组织结构
文本的具体内容和组织结构简述如下:
第一章,本论文的研究项目和研究背景。
第二章,此项目的开发语言以及编程环境。
第三章,用户的需求分析,可行性分析,功能模块设计以及总体原则。
第四章,实现了雷电游戏的功能模块,对雷电游戏项目过程中的核心部分进行了代码的注解。
第五章,对实现的程序进行了测试,对整个项目做了功能评价。

1.6 电脑游戏的策划
省略

基于Java的雷电游戏属于飞机射击类游戏。在游戏策划中包括关卡的设计,这一过程需要程序的实现同时配合美术资源的制作。而且,也需要根据整个任务系统的框架进行任务书的编写。

2 开发平台与开发技术
本章主要介绍该毕业设计项目所使用的开发语言和开发平台。

2.1 Eclipse
Eclipse是有名的跨平台自由集成开发环境(IDE),在最开始的时候,它作为一种开发工具,主要是为Java语言服务的,但近年来,随着各种插件的出现,它开始支持各种各样的语言,比如PHP以及C++等等。
省略

2.2 Eclipse平台
Eclipse是基于JAVA的可扩展开发平台。目前Java开发领域的集成开发环境层出不穷,种类达到10余种。
省略

2.3 Java
在目前的软件开发中,Java语言成为大部分人员的选择,甚至会有用户自己提出运用Java语言进行开发,可见Java语言的发展已经是深入人心,Java的流行是由于自身所拥有的特点所决定的。
(1)平台无关性
平台无关性是Java语言所拥有的最大优势,在Java中,源文件不是直接被编译成硬件可以识别的机器指令,而是通过Java的编译器先编译成字节码文件,该字节码文件就是编译Java源程序时得到的class类文件。Java的跨平台主要是指字节码文件能够在任意软硬件平台上运行,而执行这种类文件的就是Java虚拟机。Java虚拟机是指软件模拟出的计算机,可以执行编译Java源文件得到的中间码文件,而各种平台的差异就是通过Java虚拟机进行处理。

在JAVA中,通过Java虚拟机把中间码文件解译成目标平台能够识别的机器指令,能够实现不同平台运行Java程序。Java依据不同的环境平台提供了不同的Java虚拟机,例如在Sun的官方网站中就提供了windows、Linux和Solaris等各种版本Java虚拟机的下载。

(2)安全性
Java提供了一套行之有效的资源回收策略,可以使不再使用的系统资源自动回收,从而确保了系统资源的稳定性、安全性。另外,Java虚拟机会将Java程序内的数据资源及代码规范在特定的内存区域之中,确保Java程序不会破坏系统的内存空间,从而保证了系统的安全性。

省略

(3)面向对象
面向对象已经成为目前软件开发中的首选,在Java中利用了不同面向对象语言的长处,从而更彻底的实现了面向对象的技术。省略

(4)异常处理
在Java程序开发中,提供异常处理的策略,能够对各种异常和错误进行处理。这些错误主要指程序在编译以及运行时出现的错误和异常,例如数组越界异常等等。
省略

2.4 游戏图形界面的开发基础
(1)图形用户界面
图形用户界面(GUI)是如今非常流行的人机交互方式,它可以为用户显示图形界面,使用户能够通过看到的直接进行操作。Java本身拥有一系列的接口和类,使用户不需要直接调用操作系统API,为实现图形用户界面提供了便利。

(2)AWT介绍
AWT是一个不同于常规类型的组件,里面包括另外的一些组件。AWT是由java.awt包提供的,用户可以通过抽象窗口工具集,在容器中创建文本框等一些操作。AWT是Java语言GUI程序设计的核心,其库类非常丰富,包含构建Java图形界面程序的工具。AWT为用户提供了界面构件,给计算机与用户的交互提供了更好的便利。用来构建图形用户界面的独立平台主要由四部分组成。
一是组件类(Component),具体包括画布类、标签类、按钮类、文本框类、类表类、复选按钮类等。二是图形类(Graphics),是指与图形处理的相关一些类。三是容器类(Container),实际上也是一个组件,即扩展组件的抽象基本类。容器中可以有许多组件。由Container转化过来的类有很多,通过这些类创建的对象称为容器,用户可经过调用add()方法在容器中添加组件,实现与系统交互的目的。

(3)Swing介绍以及程序设计
Swing是在AWT的基础上扩充而来的,有多于AWT的丰富组件,这样的优势在于开发GUI应用程序时更为方便、灵活、效率高,这种方法设计的GUI感受更加良好。
Swing编写GUI程序主要使用到的是轻量组件,该组件不是设置在自己的窗口当中,而是被设置在包含它的容器中。为了能够供给用于绘制Swing轻量组件的窗口,Swing提供的窗体、窗口以及小应用程序等必须是重量组件。使用Swing编写GUI程序时,可以利用JFrame类创建窗体,在JFrame类中拥有多种设置窗体的方法,JFrame类构建的窗体在未设置时并不可见,因此在需要显示这样的窗体时,选择调用setVisable(Booleab b)方法设置可见,这样就可以显示在显示器上。在创建窗体时,需要设置窗体的大小、标题、关闭按钮的动作,设置关闭按钮的动作可通过setDefaultClose(int operation)方法。

省略

(4) 绘图技术
AWT的绘图技术主要包括update()、paint()、repaint()这3种方法,update()方法和paint()方法都包含有Graphics类参数。Graphics是画图的要素,它能够支持两种绘图:一种是画图象,主要运用于制作动画;另一种是画线、矩形等基本绘图。
java.awt.Graphics类是Java中最重要的处理图形的类,该类中有图形、图像的操作方法,用于绘制线、几何图形、文字等。在编写程序时,应该预先把java.awt.Graphics类导入到Java程序中。Graphics类的使用方法较比于其它有所区别,比如在屏幕上绘制图形时,需要一个画板,该画板必须是一个实体,这样Graphics类可以在画板上对各种画图进行处理,而不需要构建一个该类的实类对象。
Graphics中图形的绘制方法包括:
update( ):用途是改变图形,调用paint();
paint( ):肯定要经过变化,用于绘图的特定的操作;

(5)游戏过程当中的交互
游戏的开发过程是一个与用户玩家进行不断交互的过程,根据一批玩家在试玩结束后对游戏提出改进的意见或者建议。只有这样,才能够了解玩家真实的内心想法。在初级设计阶段,我问询了家人以及朋友的想法,体现到游戏当中,比如大招清空的设置,子弹的选择,大BOSS的子弹发射都进行了相应的调整与改进。

(6) 多线程技术的应用
在一些多线程的应用中,线程之间应相互交流、互相通信。在Java语言中,java.lang.Object类具体有3种方式来协调线程之间运行关系的功能,通过线程方法使得现场之间互相等待。

省略

(8)Java网络技术的应用
Java语言与网络有着密不可分的联系,Java语言的发展与网络的发展相互联系。网络编程是指通过网络协议以及其它计算机完成直接或者间接的数据传递。网络编程一般通过两种方法实现,一种是借助Socket套接字实现基于TCP协议的网络编程;另一种是利用URL类以及URLConnection类对WWW网络资源进行访问。URL指统一资源定位符,是描述Internet中网页或者是其它资源的地址的标识方法,它是通过顺序排列的字母或者是数字确定地址。用URL类的方法可以从网上读取数据,若还想输出一些数据,则需要用到URLConnection类。

2.5 Java游戏程序的基本框架
(1)电子游戏的开发与设计是艺术和科学的完美结合,游戏动画的制作是电子游戏设计的根基,大部分的游戏都是在动画的基础之上添加玩家与电脑的交互功能。动画主要包括游戏动画和影视动画。其中游戏动画表示在显示屏上显现出一系列的不间隔动画,动画的出现首先需要显示第一帧图形,接着在下一个不长的时段内显现下一帧,按这样的顺序依次进行,使用户感觉画面上的物体在动。另外,动画的制作需要设置合理的帧频。尤其在一些需要大量动画的游戏中,就需要取舍屏幕上显示的图像大小和FPS(每秒针的帧数)。

(2)游戏动画的制作,要想达到将一连串的图像快速循环播放的目的,需要构造循环语句用于控制图像的连续播放。同时也要利用到线程中的暂停函数,这是因为动画都需要播放速度,暂停函数可以起到既能连续播放动画又可以控制动画的播放速度。游戏当中,动画在运行的时候,有可能会出现屏幕闪烁的现象,这时就需要用到双缓冲技术。所谓的双缓冲,其实就是在计算机内存中占据一块空间作为后端的图像,程序通过改动、绘制结束之后后再出现在显示屏上。双缓冲技术是Java游戏的关键技术。
虽然双缓冲技术会消耗额外的内存,但是如今的计算机内存都相对较大,在大多数情况下,程序员都不需要优先考虑节省内存,玩家在游戏中的画面感受等才是至关重要的。所以说,利用一些内存的消耗来换取游戏质量的提高还是很合理的。

(3)游戏中的碰撞检测。游戏开发与设计中,会涉及到许多物体之间的碰撞问题。矩形碰撞、像素碰撞和圆形碰撞等都是常见的碰撞。我们把游戏中的角色称为Actor,也就是游戏当中会出现的一些飞机等,将其中的每个Actor框成与角色面积相同的矩形框。那么,游戏中的检测就是观察矩形框之间是否存在交集。如果是测试对象之间边界是否出现重叠,则可以利用圆形碰撞。通过比较对象的路径长度和半径大小,假若对象之间的长度比它们半径总和小,表明游戏中过程之中出现了相撞的情况。

还有一种是像素碰撞,前面提过,游戏当中设定的角色往往用一个矩形区域来表示,由于角色并不都是规则图形,但用矩形区域包起来后,就会出现两个角色之间实际没有产生碰撞,但是矩形碰撞检测的结果却表明它们出现了碰撞。如果使用像素检查,则把对象的背景设定为相同的颜色,此时不会出现上述问题。像素碰撞的缺点是计算量较大,消耗过多的系统资源。因此,除非严格要求的情况,一般使用的是矩形检测碰撞。

3 雷电游戏模块设计
3.1 用户需求分析
省略

雷电游戏主要包括以下功能:
(1)雷电游戏状态调整功能 :在游戏启动时,游戏会自动进行初始化的验证,若初始化成功后,界面会自动进行跳转,跳转到游戏开始界面,有开始、暂停、恢复游戏等选项。
(2)雷电游戏难度的升级:当进入游戏后,随着时间越来越长,游戏难度会越来越大,界面中敌机增多,对飞机造成伤害的子弹增多,游戏难度增加,最后会遇到一个血条较长的怪兽,攻击其至血条为0时,自动过关跳转到下一关卡。
(3)玩家对飞机的控制功能:玩家可以对飞机进行操控,通过前后左右键来控制飞机的飞行路线。
(4)游戏界面绘画功能。

3.2 可行性研究
省略

对于此基于Java的雷电游戏,下面将从技术、利益、社会的角度进行明确阐述。
1.技术可行性
谈及技术可行性,其实就是看所依靠的技术条件是否能够满足本次项目的开发工作。本次项目设计开发平台是Eclipse3.1,开发语言是Java,平台无关性是Java语言所拥有的最大优势,而且Java能对各种异常进行处理,能够满足雷电游戏的开发需求。在硬件方面,随着如今时代的快速发展,计算机的运行速度逐步加快,人们也能够负担得起,功能方面的可靠性也逐步提升。对于我的这个雷电游戏非常适合。
综上所述,本软件的开发在技术上是可行的。

2.经济可行性
该雷电游戏项目开发成本较低,没有经济方面的困难,并且该雷电游戏在工作效率方面有相当明显的优势。同时软件变更方便且实用性强,在项目运行成功之后以后的更改也很方便。用户只需要将软件安装到自己的电脑当中,当人们对雷电的某部分功能不太满意时,只需要对信息进行变更,将特定的功能模块进行调整升级。
综上所述,本软件在经济上具有可行性。

3.社会可行性
该雷电游戏的社会可行性将从法律因素、玩家使用可行性两方面综合阐述。
(1)法律因素
本次毕业设计是基于Java的雷电游戏,参考了市场上现有的雷电游戏,观察了它们所实现的功能以及不足之处,但软件的开发与论文的编写是独自完成的,没有抄袭过市场上或网上的同类产品。

(2)玩家使用可行性
这样既减少投入成本又简化了操作环节。该雷电游戏适用于群体大众,操作简单、易上手,不需要提前进行练习培训,可行性较高。
综上所述,本软件具有社会可行性。

3.3 总体设计原则
省略

3.4 功能模块设计
3.4.1 游戏状态控制功能
雷电的阶段包括开始、暂停、恢复和结束,最先需要等待游戏的加载启动,假若游戏过程中,玩家如果因为特殊事情需要离开可以选择暂停比赛,等到再次回来可以进行比赛的恢复。

3.4.2 游戏难度的调整
随着游戏的进行,游戏的难度会相应的增加,比如敌机的数量会越来越多、敌机子弹的数量也会有所增加,这些都是对玩家造成伤害的因素,这些伤害因素越多,游戏的难度相应就越大,最终每一关卡都有一个怪兽守关,它的血条、子弹都造成了游戏难度的增加。

3.4.3 游戏界面绘画功能
游戏主屏用来输出用户对己方的控制与敌方的动作显示。在屏幕的右下角会有己方飞机的生命值的显示,在游戏的左下角会有全屏爆破的剩余次数显示,通过这些显示,可以增加玩家的游戏体验性,达到一个更加人性化的界面,为用户提供更好的界面舒适度。

3.4.4 玩家游戏控制功能
用户玩家可以通过键盘的上、下、左、右键控制飞机的移动,通过移动来躲避敌方飞机带来的伤害,通过z、x键控制子弹的发射,通过发射子弹来对敌机造成伤害。

3.5 关键技术
(1)游戏美工。游戏中需要使用的游戏素材有自己控制的飞机、敌方飞机、游戏过程当中飞机所产生的子弹、飞机被命中的爆炸图片等。这些素材的选择尤为重要,游戏中清新亮丽的画面可以给玩家带来充足的美感和游戏体验。所以,在这个“雷电”游戏的素材选择中,应挑选一些立体感强的图片,给玩家更大的视觉冲击。

(2)多线程技术的实现。多线程编程能够提供程序两个或两个以上并发执行任务的能力,极大改善程序的响应性能,有效提高资源的利用效率。采取Runnable接口的方法达到定义用户线程的功能,这样既不会对继承其他类有所变化,也不会改变实现其它接口。

(3)用户飞机子弹与敌方飞机的相撞测试。包括自己控制的飞机与敌方飞机或子弹的相撞等。在这一过程中,将所有子弹对象的矩形区域与敌机对象的矩形区域逐个以此进行检测,如果出现重叠则说明子弹与敌机发生了碰撞。

(4)游戏地图滚动原理的实现。我们在坐火车时都产生过一种错觉:自己乘坐的火车没有发生移动,但如果旁边有其他火车发生移动,我们就会感到是自己的火车在移动。这种现象与飞机射击类游戏的地图原理类似,即通过背景图片的来回滚动,给游戏玩家一种是自己操纵的飞机向前飞行的感觉。

4 雷电功能实现
4.1 游戏首页的实现
4.1.1 游戏的素材选择
随着时代的发展,人们的思想也越来越进步,玩家对于精神领域的需求也越发显著,所以在游戏类型项目的设计过程中,游戏中的物体形式、动画设计等显得格外重要。在准备阶段,我通过咨询身边的同学及朋友,选择了充足的游戏素材,如玩家的飞机类型、飞机所能发射子弹的样式、飞机被击毁的爆炸图片及背景等。

4.1.2 游戏中飞机、子弹的实现
在此雷电游戏中所使用的飞机和子弹均采用对应的类来实现。整个游戏当中涉及最多的就是飞机和子弹,为了检测飞机与子弹、飞机与飞机之间的碰撞,每一架飞机与每一颗发射出来的子弹都需要对其相应的飞机和子弹在屏幕中的坐标地点进行跟踪。这样屏幕中飞机与子弹的碰撞就可通过子弹和飞机所构成的矩形区域的交集来进行判断。计算此时屏幕当中的每一架飞机和每一颗子弹就可得出碰撞结果,得到碰撞的飞机对象,然后显示爆炸图片。

4.1.3多线程
在Java语言当中,多线程功能可以满足在一个程序当中同一时刻执行好几个任务,但人们并没有察觉到线程的交替进行,而觉得所有线程同一时刻一起运行,这源于CPU在线程间的迅速切换。多线程还能提供更好的交互性以及实时控制性能。新构建的线程包含5种状态。

一是新建,即一个Thread、Thread子类的对象声明、构建时,新生成的对象就会是一种新建状态,此时,线程已经被初始化,并且拥有相应的资源。

二是就绪,当新建的线程开启之后,会进入线程队列进行排队,此时线程已达到了运行的资格,需要准备CPU时间片,如果轮到它享有CPU资源时,就具有构建自己生命周期的机会,可以离开它的主线程。此外,处于阻塞状态的线程也会进入就绪的状态。

三是运行,在第二步骤下的线程通过排队获取到资源以后,紧接着将会步入运行的状态。run()方法存在于每一个Thread类及其子类中。在线程对象处于执行态时,会调用线程对象的run(),run()方法当中有该类线程的功能以及操作。

四是阻塞,存在一种正在正常执行的线程被人为挂起的非正常情况下,此时,将迫不得已的让出CPU而且终止本身的执行态,转入到了阻塞状态。该状态下不能参与队列排队,只有当这种迫不得已的非正常情况消失之后,线程才能再一次转入第二步骤,然后再一次去线程队列中排队获得CPU资源以进行未完成的过程。

五是死亡,线程死亡的一种情况是该线程被强迫性结束,比如用destroy()来停止线程。另外一种情况是一个线程按照常规运行完所有的安排,结束了run()的所有语句,最后退出。处于死亡状态下的进程不再具有运行的能力。

Java实现多线程包括两种方法,一种是在用户自己的类完成Runnable接口,这个特殊的接口有且只有一个run(),在此方法中需要规定方法体并且明确具体的操作。在线程处于运行状态时,将会执行run()方法中的操作。二是创建用户本身的Thread线程子类。该类封装了线程的属性及行为。Thread类的主要方法包括:开始线程的方法、定义线程步骤的方法、暂停线程的方法、结束线程的方法及判断是否消亡的方法。

上述实现线程的两种方式并不是完全相同的,即使它们均可以通过一定的操作得到独立的执行任务。继承Thread类的方式特点是操作简单,但它的特点也比较突出,因为Java语言并不支持多重继承(多重继承虽然普遍存在,但是使用复杂,编译程序也不易实现),所以继承了该类就不能够继承其它的类,这会影响项目开发。对于实现Runnable接口的方法则既不影响实现其它的接口又不影响继承其他类,这种方法灵活性更加突出。所以此次雷电游戏项目采用Runnable接口实现多线程。

4.2 游戏首页的实现
4.2.1 界面实现
游戏在初始进入时,会跳转出游戏启动界面,点击任意键会自动加载进入游戏中。界面模式是下图4-1。

图4-1 游戏启动界面

4.2.2 流程图
在游戏正常启动后,系统会对客户端的操作进行一系列的判断。首先在启动界面时,要分析初始化是否成功,若初始化成功,进入游戏,反之,重新初始化。游戏开始的流程图如下图4-2所示。

图4-2 游戏初始化流程图

4.2.3 核心代码
游戏初始化代码如下:

4.3 游戏开始模块的实现
4.3.1 界面实现

图4-3 游戏中的界面效果

4.3.2 流程图
进入游戏后,首先,游戏会进行初始化操作,若初始化成功会进入游戏,否则,需要进行异常处理,游戏开始后,会进行选择,若选择失败,则需要进行异常处理。如图4-4所示。

图4-4 游戏开始模块程序流程图

4.3.3 核心代码
下面是游戏开始模块的功能代码,如下:

4.4 发射子弹模块的实现(两种子弹)
4.4.1 界面实现
在游戏中,需要进行两种子弹的设计,刚进入游戏时,飞机仅发射初级的子弹形式,随着游戏的进行,需要对子弹的形式进行改变,用以表示飞机战斗力升级。在这一过程中,飞机的初始子弹为三颗粒状逐渐分散开来,随着游戏难度的升级,子弹会由分散的粒状变为持续的柱状,这两种子弹的形式分别如图4-5、4-6所示。并且,会在游戏中设置全屏爆破的功能,这一功能的作用就是将屏幕中的敌机和敌机所发射的子弹,全部清除,以减少对飞机自身的损害。

图4-5 游戏发射子弹界面

图4-6 游戏中发射子弹界面

4.4.2 流程图

图4-7 子弹发射流程图

4.4.3 核心代码
发射子弹实现代码如下:

选中敌机目标后,开始发射子弹。在TetrisBoard.java中的checkRowCompleted()方法实现了此功能,其代码如下:

积分的变化根据击中敌机的数量来决定,然后计算玩家当前的游戏分数。同时等待玩家键入数字,选择游戏难度并开始新的游戏。下面是控制方法init()的代码:


5 系统测试
省略

5.1 测试的定义及其重要性
5.1.1 测试的定义以及目的
省略

5.1.2 测试的重要性
省略

5.2 测试实例的研究与选择
程序测试主要包括白盒测试、黑盒测试两种方法。
省略

本次项目的的测试综合了黑、白两种测试方法,黑盒测试方法作为主要的测试方法。经过测试完成之后检查:
(1)功能检查。
观察所设定的功能能否正确实现以及是否存在遗漏问题。
(2)数据检查。
检测数据结构是否存在错误。
(3)性能检查。
看所设定的需求是否能够得到实现。
(4)初始化、终止检查。
看是否能够准确无误地进行开始以及结束。

相关测试用例:
表5-1 系统测试用例表


5.3 测试结果
软件评测就是对软件项目的用途、性能以及使用价值等进行的测试和评估。评价项目包括评测的内容。针对本软件的评价如下:
(1)功能评价
根据该软件开发设计之前所预设的目标,在雷电项目完成后进行了相关测试,与预期设定相符。比如关卡的选择、子弹的选择、“大招”清屏的运用都可以体现出来,在项目完成之后可以满足用户的整体要求。
(2)技术评价
经过对该雷电游戏进行系统的测试,表明该雷电游戏在规定的时间内达到了预定的功能目标,具有较强的使用能力,技术成熟。
(3)经济评价
经过对该雷电游戏进行系统的测试,在规定的时间以及项目开发要求内,达到了预期项目开发的要求,对整个雷电游戏的管理中节约了时间和精力。在软件以后的改善中,如对各个关卡的变更,可以针对其中的模块进行修改,节省了精力。

总结和展望
省略

参考文献
[1] 百度百科.Java语言的特点和优势[EB/OL].
http://wenku.baidu.com/view/edd3e74ffe4733687e21aac9.html
[2] 荣钦科技.Java2游戏设计[M].北京.清华大学出版社.2004.
[3] 程成.软件工程[M].北京.机械工业出版社.2003.
[4] 袁海燕,王文涛.Java实用程序设计100例[M].北京.人民邮电出版社.2005.
[5] 王伯欣.J2ME无线.Java[M].北京.应用开发电子工业出版社.2004.
[6] 曹莹,苗志刚,赵秀明.浅谈Java优势[J].中国科技信息,2006.
[7] 邵敏敏,陈德平.解析Java的多线程机制[J].电脑知识与技术.2006.
[8] 朱平.Java程序设计教学[J].湖北教育学院学报.2006.
[9] 猛伟君.李龙海.付少锋.周利华.基于VC++和JAVA的多线程设计和实现[J].2006.
[10] 秦琴.Java语言的异常处理设计[J].中国科技信息.2006.
[11] 倪道义.手机游戏架构分析[J].科技论坛,2011,(9):90.
[12] Benny Skogberg.Android Appliaction Development[D].Sweden:Malmo University,2010.
[13] Cay S.Horstmann,Gary Cornell.Introduction to Java [M].London: Macmillan.2006.
[14] Bruce Eckel.Thinking in Java [M] .London: Prentice Hall PTR.2003.

致 谢
省略

附录
英文文献
省略

中文翻译
省略


5、源码下载:

本项目源码及论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号 毕业设计全套资源(点击下载)
本项目源码 基于java+swing+GUL的雷电游戏GUL设计与实现(源码+文档)_JAVA_swing_GUL_雷电游戏GUL.zip

【java毕业设计】基于java+swing+GUI的雷电游戏GUI设计与实现(毕业论文+程序源码)——雷电游戏相关推荐

  1. java毕业设计——基于JSP+sqlserver的网络在线考试系统设计与实现(毕业论文+程序源码)——在线考试系统

    基于JSP+sqlserver的网络在线考试系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于JSP+sqlserver的网络在线考试系统设计与实现,文章末尾附有本毕业设计的论文和源码下 ...

  2. asp毕业设计—— 基于asp+access的软件信息发布系统设计与实现(毕业论文+程序源码)——软件信息发布系统

    基于asp+access的软件信息发布系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的软件信息发布系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需 ...

  3. asp毕业设计——基于asp+access的教师档案管理系统设计与实现(毕业论文+程序源码)——教师档案管理系统

    基于asp+access的教师档案管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的教师档案管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需 ...

  4. C#毕业设计——基于C#+asp.net+Access的视频点播系统设计与实现(毕业论文+程序源码)——视频点播系统

    基于C#+asp.net+Access的视频点播系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+Access的视频点播系统设计与实现,文章末尾附有本毕业设计的论文 ...

  5. C#毕业设计——基于C#+asp.net+sqlserver作业审阅系统设计与实现(毕业论文+程序源码)——作业审阅系统

    基于C#+asp.net+sqlserver作业审阅系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+sqlserver作业审阅系统设计与实现,文章末尾附有本毕业设 ...

  6. asp毕业设计—— 基于asp+access的企业人力资源管理系统设计与实现(毕业论文+程序源码)——人力资源管理系统

    基于asp+access的企业人力资源管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的企业人力资源管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地 ...

  7. asp毕业设计——基于asp+sqlserver的教学互动管理系统设计与实现(毕业论文+程序源码)——教学互动管理系统

    基于asp+sqlserver的教学互动管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+sqlserver的教学互动管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下 ...

  8. asp毕业设计—— 基于asp+access的客户管理信息系统设计与实现(毕业论文+程序源码)——客户管理信息系统

    基于asp+access的客户管理信息系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的客户管理信息系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. ...

  9. asp毕业设计——基于asp+sqlserver的在线手机销售系统设计与实现(毕业论文+程序源码)——在线手机销售系统

    基于asp+sqlserver的在线手机销售系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+sqlserver的在线手机销售系统设计与实现,文章末尾附有本毕业设计的论文和源码下 ...

  10. asp毕业设计——基于ASP+IIS+sqlserver的房屋租售信息管理系统设计与实现(毕业论文+程序源码)——房屋租售信息管理系统

    基于ASP+IIS+sqlserver的房屋租售信息管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于ASP+IIS+sqlserver的房屋租售信息管理系统设计与实现,文章末尾附有 ...

最新文章

  1. 人工智能70年:科幻和现实的交融
  2. php-fpm 没有启动脚本,php-fpm服务启动脚本
  3. Java堆空间,本机堆和内存问题
  4. css3-2 CSS3选择器和文本字体样式
  5. Spark 之 解决数据倾斜(一)
  6. 使用smo算法编写svm对CIFAR-10数据分类
  7. 分析师:苹果或推出自家搜索引擎;曝因芯片缺货,华为智慧屏削减30-40%订单;Rust 1.46.0 发布|极客头条
  8. Deep Learning 深度学习 学习教程网站集锦
  9. 华为鸿蒙专属文件后缀,华为鸿蒙——上传第三方APP【原理公布】
  10. 计算机视觉:图像分割算法综述总结
  11. ffmpeg 结合 ASS字幕制作+特效制作
  12. matlab中abs( )函数
  13. 背篼酥课堂第九课--前端知识、APP知识
  14. Cesium实现卫星在轨绕行
  15. CLK_OF_DECLARE 解析
  16. 中国联通物联卡ICCID号码查询原理
  17. 极简自适应网址导航搜索页源码
  18. php 数组去重函数,【译】更快的方式实现PHP数组去重
  19. 软件设计师-JAVA程序设计语言
  20. highcharts做图第一篇,guage速度仪表展示网速

热门文章

  1. UniAPP 快速入门学习
  2. php如何让文字竖排显示文字,CSS如何实现文字竖排效果
  3. 超强杀进程工具(可瞬时杀多进程)
  4. Java用“*”输出三角形、六边形、空心菱形、“拱门”
  5. 推荐系统实战中LR模型训练(一)
  6. 如何使用bitcoinjs-lib@6.0.1生成私钥、公钥及地址
  7. QBot:基于SmartQQ协议的QQ机器人
  8. NTFS转换到FAT32丢失文件问题的解决办法
  9. Java设计模式——结构型模式之享元模式
  10. 深入理解int64,int32 是个啥