基于Java的雷电游戏参考论文(论文 + 源码)

【免费】关于基于java的雷电游戏.zip资源-CSDN文库icon-default.png?t=N7T8https://download.csdn.net/download/JW_559/89321437

基于Java的雷电游戏

摘   要

   电脑游戏,是指在计算机上能够运转的游戏软件。这种软件具有较强的娱乐性。电脑游戏的创新和发展与硬件、软件的发展紧密相关。它能够给玩家提供一个虚拟的环境,使游戏带给了人们很多的享受和欢乐。雷电游戏因为操作简单,节奏明快,一直是纵轴射击游戏的经典之作。经常能够在手机或者计算机中见到这款游戏,深得广大玩家的喜爱,可以说是妇孺皆知的一款益智类游戏。

   本游戏基于Eclipse开发平台,以java作为编程语言,整个项目开发旨在模拟雷电游戏的飞机射击游戏。游戏界面的下部是玩家的飞机,可以根据按键控制子弹的发射,上部为敌方飞机,在界面中随机出现。在游戏过程当中,用户飞机的移动是被电脑键盘的方向键所控制的,在整个游戏过程当中,如果用户飞机的子弹与敌方飞机发生相撞时,敌方飞机就会有爆炸的效果产生。游戏中使用到的飞机、子弹均采用对应的类实现。

关键词:雷电;电脑游戏;java;Eclipse;

Lightning Game based on Java

Abstract

 A computer game is a game software that can run on a computer. This software has a strong entertainment function. Computer game innovation and development and hardware, software development is closely related. It can give players a virtual environment, so that the game brought a lot of people enjoy and joy. Lighting game because of simple operation, rhythmic, has been the vertical axis shooting game classic. Often in the phone or computer to see this game, won the majority of players love, can be said the all to see this game, won the majority of players love, can be said that all ages a puzzle game.

This game is a java-based lighting game, the use of Eclipse platform to achieve classic lighting games.

The entire project development is to simulate the lighting game of the aircraft shooting game, the bottom is the players plane, able to control the launch of the bullet, the top is a random enemy aircraft. Players can control the movement of their own aircraft through the arrow keys of the keyboard, when the player aircraft bullets hit the enemy aircraft, the enemy aircraft will appear explosion effect. The aircraft used in the game, bullets are used to achieve the corresponding class.  

Keywords: lightning; game; Java; Eclipse platform

1 引言

1.1 项目背景

作为90后的我们,在小时候都拥有属于自己的一台游戏机,里面形形色色大概有十来款游戏。像 “扫雷”、“推箱子”、“俄罗斯方块”等等,我们的童年有这些游戏陪伴我们是幸福的,令许多小伙伴都为之痴迷,即使现在,这些都是随处可见的休闲游戏。我之选择“雷电”游戏作为我的毕业设计,因为它可以代表一代人青春的回忆。

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

    目前常见的电脑游戏的类型有动作游戏、传统益智游戏、体育游戏、策略游戏、休闲游戏和角色扮演类游戏等。不同的类型的游戏有着自身的特点,每一种类型的游戏都有一定的支持人群。开发出一款良好的游戏,了解各种类型的基本特点是很有必要的。而“雷电”游戏就属于上述类型中的STG(射击类)游戏,STG(Shooting Game)类型游戏主要凭借远程武器与敌方开展模拟对抗,拥有绚丽的射击画面。

这个项目使我第一次全流程地独立完成整条链路的开发,对于我自己而言,是0-1的突破。万事开头难,有了这次完整项目开发的经历,以后再做游戏或者其它项目时就对全局有所把控,能够做到游刃有余。假如自己没有亲自动手设计这些,哪怕一次,就不能够真正的领会一个完整项目体系中的每个元素。在以后做一些大的项目时,就更不能对整体进行宏观思考,也就不能对具体项目中每一个细分的小模块进行合适的时间估计,导致项目开发超过预期时间,更有甚,不能完成。

1.2 电脑游戏的发展历史

在1960年,电子计算机进入了美国的大学校园,这时候电脑游戏开始出现。在那个环境当中孕育了一大批的电脑编程高手。其中具有代表性的是1962年一名叫做拉塞尔的大学生,在美国DEC公司生产的PDP-1型计算机上编写的《宇宙战争》引起了广泛的关注。所以大多数人都把拉塞尔称作电脑游戏的发明人。从1970 年以后,计算机的发展速度逐渐加快,同时开发的成本逐步降低。再后来,布什内开发了世界上首台商业化计算机用以游戏用途,被称为“电子游戏之王”。

1970年,随着苹果公司的诞生,使得电脑游戏开始越来越商业化。不过,早期的电脑游戏界面设计等较为粗糙,但是电脑游戏的雏形已经诞生。    

1980年,随着多媒体技术渐渐走向成熟,技术先进的先行者们纷纷把目光投向电脑游戏。每一款游戏都会有详细的故事情节作为描述,1985年,日本公司任天堂开发了一款电子游戏巨作—超级马里奥,它讲述的情节是一名在意大利的管子工击败了大魔王,最终迎娶了公主也拯救了世界。这款游戏的流行程度也确立了任天堂公司在电子游戏界的称霸地位。这款游戏尽管叫做Computer,但它专心于游戏机平台的营造,舍弃了一部分计算机特征。从此以后,游戏机游戏和电脑游戏开始分道扬镳。Windows操作系统出现以后,电脑游戏的设计开始了一场新的革命,电子游戏的设计者越来越注重视觉和感官的冲击,开始向3D的方向发展。从3D Realms公司的《德军总部3D》到Id Software公司的《Doom》,电子游戏开始商品化。

1996年,《Quake》成为一款跨时代的游戏作品,相比于之前的其它射击类游戏,它是一款真正的3D游戏,给玩家带来了前所未有的虚拟真实感。《Quake》代表了计算机游戏开始渐渐向3D门槛迈入,也同时给电竞活动带来了全新的概念。

从1990年开始,即时战略游戏成为电脑上最引人关注的游戏类型。比如Westwood公司开发的《红色警戒》和《C&C》,还有《帝国时代》和《星际争霸》等等,伴随着五花八门的游戏概念的不断提出和创新,即时战略游戏的发展达到了一个新的高度。在此同时,由于3D技术的不断进步,动作游戏也获得了新生,伴随游戏的发展,动作游戏的规则也产生了一些改变,原来在2D平面上运行的动作游戏无法将一些真实的动作表现出来,而3D技术的革新,使得人物不仅前后左右运动,而且可以通过自己的视角进行观察周围环境,创造出新的动作。再到后来,随着计算机在软、硬件方面技术的进步,给电脑游戏的发展带来了强劲的动力和机遇。

21世纪以来,电脑游戏开始在网络游戏方面崭露头角。与单机版游戏不同,网络游戏的玩家需要通过连入互联网来进行游戏。所以说,网络游戏必须有用户玩家接入互联网,按照开发过程中制定的规则进行操作。其中,按照游戏形式的差异,可以分为网页游戏和客户端游戏。网页游戏是指用户不需要提前安装客户端软件,就可直接通过网络浏览器来玩的网络游戏。它所具有的优点是不会存在硬件配置不够的问题,而且开启以及关闭都很方便。网页游戏的题材和类型也都非常丰富,具有代表性的有休闲竞技等。客户端网络游戏需要预先在电脑上安装客户端进行注册自己的唯一账号,这种形式的游戏由开发该游戏的公司进行构建服务器,如今的大部分游戏都是这种类型。每个玩家在一开始都会创建自己的角色,并且这些资料都会保存在服务器端。具有代表性的游戏作品有英雄联篮球部落、魔兽世界、穿越火线、跑跑卡丁车等。

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)游戏界面绘画功能

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

  1. 玩家游戏控制功能

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

1.5 本文组织结构

文本的具体内容和组织结构简述如下:

第一章,本论文的研究项目和研究背景。

第二章,此项目的开发语言以及编程环境。

第三章,用户的需求分析,可行性分析,功能模块设计以及总体原则。

第四章,实现了雷电游戏的功能模块,对雷电游戏项目过程中的核心部分进行了代码的注解。

第五章,对实现的程序进行了测试,对整个项目做了功能评价。

1.6 电脑游戏的策划

策划主要就是对游戏的整体进行规划的工作,即在整个项目开始编写之前,要对雷电游戏的开发过程进行规划,要做到心中有数。好比在阅读一本新书时,要先通过阅读全书的目录章节对全书进行整体的了解。策划的具体工作是对游戏的整体模式进行设计,同时也要对游戏设计文档进行描述。策划的范围包括整个游戏的所有内容,此外,游戏素材需提前制作,使得游戏中的各种要素能够呈现在我们面前。而程序开发的过程则是按照策划阶段设计的游戏规则运用代码的方式加以实现。游戏的筹划通常分为:数值策划、剧情策划、关卡策划等。

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

2 开发平台与开发技术

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

2.1 Eclipse

Eclipse是有名的跨平台自由集成开发环境(IDE),在最开始的时候,它作为一种开发工具,主要是为Java语言服务的,但近年来,随着各种插件的出现,它开始支持各种各样的语言,比如PHP以及C++等等。就Eclipse本身来说,它只是为开发者提供一个平台而已,但是随着各式各样插件的出现,使得Eclipse拥有较强的灵活性。许多软件开发商在Eclipse框架之上开发自己的IDE。Eclipse最吸引人的三个方面包括:一是创新性的图形API-SWT/JFace。与Java的 AWT/SWING界面不够美观、界面响应速度较慢相比,SWT/JFace极大改善了Java在这些方面的能力。二是插件机制。Eclipse以其强大的插件机制而著名,可以认为,Eclipse就是由众多的插件所组成的。到了Eclipse3.0,伴随RCP概念的推广,整个Eclipse的插件形成了清晰明了的层次关系。三是基于Eclipse插件机制开发的各种功能强大的插件。Eclipse插件的安装方法包括:直接复制法、Eclipse自带图形界面安装、使用link文件法、使用dropins安装插件等。

2.2 Eclipse平台

Eclipse是基于JAVA的可扩展开发平台。目前Java开发领域的集成开发环境层出不穷,种类达到10余种。如此多种类的IDE丰富了Java开发工具家族,但也为开发人员提出了选择难题。

这些开发模式区别较为显著,在一种开发模式下完成的项目往往不能方便地移植到另一种模式中,这就需要更加合理有效地选择适合项目目标的开发工具。

在目前的集成开发环境中,Eclipse可以说是最具发展前景的产品之一。Eclipse最早开始于1994年4月,由IBM、OTI的产品开发组创建。IBM提供了最初的Eclipse基础代码,包含JDT、Platform、PDE等。目前Eclipse项目已发展为一个庞大的Eclipse联盟,该联盟以IBM为主,有150多家软件公司参与其中,包括Borland、Software、Red Hat、Rational、Sybase等,最近Oracle也着手加入Eclipse联盟中。 

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虚拟机的下载。

  1. 安全性

    在C/C++中,指针的使用是一个高级话题,如果熟练掌握指针可以给程序的开发带来很大的方便,但是若使用指针不当,就有可能造成系统资源泄露,更严重的是错误的操作可能导致非法访问系统文件的地址空间,从而给系统带来灾难性的破坏,因此上在C/C++中指针的使用需要十分注意。在Java中,不存在这样指针,所有的存取过程都根据Java语言自身进行解决完成,不涉及对存储空间之间访问的方法,这样可以确保地址空间不被故意或者是无意的破坏。并且经过这种处理,也可有效避免系统资源的泄露。

    例如在C/C++中,如果大量的指针不及时处理,就会占用系统内存资源,导致可用的内存空间被白白消耗掉。在Java中就不存在这样的麻烦,Java提供了一套行之有效的资源回收策略,可以使不再使用的系统资源自动回收,从而确保了系统资源的稳定性、安全性。另外,Java虚拟机会将Java程序内的数据资源及代码规范在特定的内存区域之中,确保Java程序不会破坏系统的内存空间,从而保证了系统的安全性。

   (3)面向对象

面向对象已经成为目前软件开发中的首选,在Java中利用了不同面向对象语言的长处,从而更彻底的实现了面向对象的技术。Java程序大体上所有的功能都是基于对象来完成的。为了实现模块化以及数据的隐蔽,Java语言运用了功能代码封装的处理,Java语言对继承性的实现使得功能代码能够重复使用,用户可以通过将具体的功能代码封装成自定义的类,来实现对代码的再利用。

C++是一种经典的面向对象语言,Java语言延续了C++中面向对象的理论,但是在Java语言中去掉了部分复杂的技术,从而简化了面向对象的技术,例如运算符的重载等等之类的一些功能。在这样的处理之后,Java中的面向对象技术变得更为简便、易懂,同时保留了面向对象的核心技术,使用户能够方便的享受面向对象技术带来的方便快捷。

  1. 异常处理

     在Java程序开发中,提供异常处理的策略,能够对各种异常和错误进行处理。这些错误主要指程序在编译以及运行时出现的错误和异常,例如数组越界异常等等。Java中的这种非正常处理策略能够帮助使用者定位处理各种错误,从而极大提高了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是于1996年末才开始被设计的,是一套由JFC(Java基础类库)提供的用于开发图形用户界面,作为Java基类的一部分,是Sun公司提出的图形用户接口工具包。Swing能够开发出功能完善、视感独特的应用程序。同时,Swing具有优良的扩展能力,提供许多功能齐全的组件。人们的开发工作由于Swing的存在而变得简化。Swing完全是利用Java语言来实现的,它的屏幕显示性要比AWT好。不过Swing是在模仿,不属于运用原生平台来提供设备,因此能够在不同平台上使用Swing图形用户界面组件。

Swing是在AWT的基础上扩充而来的,有多于AWT的丰富组件,这样的优势在于开发GUI应用程序时更为方便、灵活、效率高,这种方法设计的GUI感受更加良好。

Swing编写GUI程序主要使用到的是轻量组件,该组件不是设置在自己的窗口当中,而是被设置在包含它的容器中。为了能够供给用于绘制Swing轻量组件的窗口,Swing提供的窗体、窗口以及小应用程序等必须是重量组件。使用Swing编写GUI程序时,可以利用JFrame类创建窗体,在JFrame类中拥有多种设置窗体的方法,JFrame类构建的窗体在未设置时并不可见,因此在需要显示这样的窗体时,选择调用setVisable(Booleab b)方法设置可见,这样就可以显示在显示器上。在创建窗体时,需要设置窗体的大小、标题、关闭按钮的动作,设置关闭按钮的动作可通过setDefaultClose(int operation)方法。

Swing组件需要添加在与Swing顶层容器相关的一个控制面板上,并不能简单地添加到顶层容器当中去。从而可以避免使用Swing的重量级组件。向JFrame中添加组件包括两种方法:一种方法是创建中间容器,将组件添加到容器中,用setContentPane()方法将这个中间容器设置为JFrame的内容面板。 另一种方法是先通过getContentPane()获得内容面板,然后再将组件添加到内容面板中。常见的面板包括JSplitPane、JPanel、JScrollpane等。使用Jpanel面板的用途有:在不使用面板时,界面难以进行分区,此时的组件只能被迫采用一种布局方式,难以设计出画面美观的界面;某些布局方式只能够管理有限的组件,这会束缚设计思想。

组件是软件系统和用户进行交互的桥梁,也是图形用户界面的基本元素。一般的组件包括:标签组件,主要用来文本以及图像的显现,配合其它组件输出说明信息。标签组件提供了很多设置标签的方法,常见的有setText(String text)、setFont(Font font)等;按钮组件,包括按下和释放两种状态,需要通过捕捉按下、释放动作才能执行操作;密码框,用于需要进行密码设置的场合,接受单行文本信息,不显示输入的真实信息,会用星号或者其它图表表示输入的位数,常用的方法有getEcho()(获得回显示符,返回的类型为char型)、setEchoChar(char c)(指定回显示符,默认为“*”)、getPassword()(获取用户输入的信息,返回类型为char型数组);文本框,同样是用于接受用户输入的单行文本信息,可以在创建之后利用setText(String t)方法设置文本信息,也可以创建默认文本的文本框对象,常用的方法有setText(String t)()(设置文本框中的信息)、setFont(Font f)(设置文本框中文字的字体)、setColumns(int columns)(设置文本框中最多可显示内容的列数)等。

(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语言运用到了监听器的技术,它为受保护的共享对象添加了一把“锁”,只有拥有“钥匙”的线程才能进行操作,而每次的“钥匙”必须进行申请,没拿到“钥匙”的线程必须进行等待,直到拿到“钥匙”。实现非单一线程同步有两种途径:一种是方法同步,这种方法是避免多个线程同一时间访问某个方法,解决的办法是在定义中加入synchronized,如果出现某一线程已经对方法进行了访问,那么其它线程只能通过等待,然后才能访问。另一种是对象同步,针对于某一数据对象,无论该对象有多少个线程要进行访问,在同一时间只能进行一个线程的访问。

在一些多线程的应用中,线程之间应相互交流、互相通信。在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游戏的关键技术。

    虽然双缓冲技术会消耗额外的内存,但是如今的计算机内存都相对较大,在大多数情况下,程序员都不需要优先考虑节省内存,玩家在游戏中的画面感受等才是至关重要的。所以说,利用一些内存的消耗来换取游戏质量的提高还是很合理的。

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

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


3 雷电游戏模块设计

3.1 用户需求分析

大部分的射击类游戏都存在一定的相似性,雷电游戏也不存在特殊。其实就是一个周而复始的情形,一直到游戏结束才能够停止。游戏开始阶段接受玩家的输入并对这个输入办理,如果没有结束就会不断产生飞机,通过检查我方飞机的血条判断游戏是不是最终结束。

该雷电主要就是我方飞机与敌方飞机的射击比拼,首先需要有界面来装载整个项目,通过键盘的上、下、左、右键遥控自己的飞机,z、x键进行子弹发射的选择,然后是敌方飞机的出现方式,敌机子弹的生成,通过各个关卡,最后得出比赛的结果。

雷电游戏主要包括以下功能:

  1. 雷电游戏状态调整功能 :在游戏启动时,游戏会自动进行初始化的验证,若初始化成功后,界面会自动进行跳转,跳转到游戏开始界面,有开始、暂停、恢复游戏等选项。

    (2)雷电游戏难度的升级:当进入游戏后,随着时间越来越长,游戏难度会越来越大,界面中敌机增多,对飞机造成伤害的子弹增多,游戏难度增加,最后会遇到一个血条较长的怪兽,攻击其至血条为0时,自动过关跳转到下一关卡。

    (3)玩家对飞机的控制功能:玩家可以对飞机进行操控,通过前后左右键来控制飞机的飞行路线。

    (4)游戏界面绘画功能。

3.2 可行性研究

在进行任何一项工程项目时,先要做的是可行性研究和分析,对各种可能性方案进行研究比对,比较它们的优劣。可行性研究的主要目的就是在尽可能短的时间段内用相对较小的代价确定问题是否能够得到解决。先要进行概要的分析,大致明确项目目标并完成整体规划,从而判断原先系统的目标能不能正常实现以及是否有它设计、产生的价值。总体而言,可行性研究是通过抽象的方式进行分析和研究。

对于此基于Java的雷电游戏,下面将从技术、利益、社会的角度进行明确阐述。

1.技术可行性

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

综上所述,本软件的开发在技术上是可行的。

2.经济可行性

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

综上所述,本软件在经济上具有可行性。

3.社会可行性

该雷电游戏的社会可行性将从法律因素、玩家使用可行性两方面综合阐述。

(1)法律因素

 本次毕业设计是基于Java的雷电游戏,参考了市场上现有的雷电游戏,观察了它们所实现的功能以及不足之处,但软件的开发与论文的编写是独自完成的,没有抄袭过市场上或网上的同类产品。

(2)玩家使用可行性

这样既减少投入成本又简化了操作环节。该雷电游戏适用于群体大众,操作简单、易上手,不需要提前进行练习培训,可行性较高。

综上所述,本软件具有社会可行性。

3.3 总体设计原则

软件总体设计的任务是软件模块设计以及软件体系结构设计。软件体系结构是软件系统中最本质的要素。因为体系结构就是对复杂对象进行抽象,能够描述各类风格的软件系统结构,高效的处理各种各样的需求。良好的软件体系结构代表着高效与稳定。

该雷电游戏项目的主要设计原则有:

简单性:该软件项目实现了雷电游戏的所有功能,并且在操上作简单易懂、容易上手,适用于大部分人群。

针对性:该雷电游戏是基于Java的程序设计项目,具备较强的针对性。

实用性:该程序设计项目能够实现雷电游戏的全部功能,其中关卡和终极大BOSS的设计更加体现了良好的实用性。

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 测试实例的研究与选择

程序测试主要包括白盒测试、黑盒测试两种方法。

白盒测试也被称为结构性测试或者说是在代码基础上的一种测试,从字面意义上来理解,白盒是指装载被测试软件的盒子是能够看见的,能够清楚直接掌握盒子内部的东西以及操作原理。白盒法属于群举路径测试,可以全面了解程序的逻辑结构以达到测试的目的。白盒测试的方法有许多。白盒测试法包括三种覆盖标准。在这之中,逻辑覆盖的6种覆盖标准发现软件存在缺陷的能力呈逐步递增的变化。白盒测试的实施具体包括设想阶段、构造阶段、操作阶段和总结阶段。其最大的优点是能够详细检测到代码当中的每条路径与分支,所以相对来讲,对代码的测试比较测底。但它没有对规格进行有效验证,而且尽管对每条路径都进行合理测试,但出错的可能性依然有可能是发生的。

黑盒测试,也有人称之为功能性测试,指检测软件的每个具体性的功能是不是能够合理的运作。在黑盒测试当中,黑盒子就相当于程序,不能够打开。所以无法看到程序的内部特性与结构,内部的逻辑结构不在考虑范围之内,仅仅是针对程序功能进行检测,只考虑程序当中的外部性的结构。通常来讲,黑盒测试需要对每一部分进行测试,这样才会将所有的情况进行充分考虑,找出程序中潜在的所有缺陷。但是在平常的测试过程中,不但需要测试合法的输入,同时对其它不合法但存在输入的可能性的也需要测试,这就造成工作量远远超出预期范围,这种穷举性测试在操作过程中不太可能实现。实际中我们需要采用有针对性的测试,提前制定详细的测试方法进行测试,这样才能确保软件的质量。黑盒测试的方法包括边界数值剖析、等价类分割法、场景法等等。较为常用的是等价类分割法,该方法将程序的输入切割成若干个部分,从其中选择合适的具有典型意义的数据选做测试用例,每一类的数据就等同于这个类的其它值。黑盒测试的优点在于测试不需要了解实现的细节,而且很容易被理解和接受。

对于一些大型的代码模块,黑盒与白盒测试相比,其效果更好,并且在测试过程当中并不需要对详尽的情况(包括特定的编程语言)进行熟悉,具体执行相对较为方便。本次项目的的测试综合了黑、白两种测试方法,黑盒测试方法作为主要的测试方法。经过测试完成之后检查:

(1)功能检查。

观察所设定的功能能否正确实现以及是否存在遗漏问题。

(2)数据检查。

检测数据结构是否存在错误。

(3)性能检查。

看所设定的需求是否能够得到实现。

(4)初始化、终止检查。

看是否能够准确无误地进行开始以及结束。

相关测试用例:

表5-1 系统测试用例表

测试

功能

用例描述

测试步骤

预期结果

实际结果

类别

游戏启动模块

用户运行程序以启动游戏

用户需要运行程序,进入游戏启动界面,此时点击任意键,将会自动切换到游戏界面。

当游戏初始化完成后,会进入主界面,此时按enter键或其他任意键,都可以直接进入游戏。

与预测结果一致。

功能点测试

玩家控制飞机功能

进入游戏后,玩需要通过飞机的移动来躲避敌机造成的伤害。

玩家进入游戏后,通过上下左右键的控制,可以自由移动来躲避敌机的子弹。

通过上下左右键的控制,可以使飞机自由移动。

与预测结果一致。

功能点测试

飞机发射子弹功能

玩家在游戏中,可以点击2或8来进行子弹的发射。

游戏中,玩家点击2或8开始发射子弹,来对敌机造成伤害。

飞机发射子弹击败敌机。

与预测结果一致。

功能点测试

全屏爆破功能

在飞机剩余血量不多或者难以抵挡的情况下,可以进行全屏爆破来增加自己生存的几率。

当需要进行清屏时,单击空格键,可以完成一次屏幕清理,为自身增加胜率。

点击空格键后,屏幕上所有敌方伤害源消失。

与预测结果一致。

功能点测试

子弹升级功能

随着游戏的进行,难度在发生变化,飞机本身也会发生子弹上的改变,当积分到一定成帝,子弹会转变成更具伤害力的形式。

随着游戏的进行,难度增加,时长累积,子弹会发生变化。

子弹开始由放射状转变为持续的柱状。

与预测结果一致。

功能点测试

游戏过关功能

随着游戏的进行,难度会随之升级,最终需要打死怪兽,才可以成功进入下一关卡。

当怪兽的血条为0时,游戏即可进入下一关。

怪兽死亡后,自动进入下一关卡。

与预测结果一致。

功能点测试

环境

模块

将集成后的代码放入Eclipse中,查看运行情况,观察是否报错。

启动Eclipse,运行程序代码,看是否有报错信息。

完整的代码可以在Eclipse中运行,在虚拟机中可以愉快地玩飞机大战游戏。

与预测结果一致。

环境测试

5.3 测试结果

软件评测就是对软件项目的用途、性能以及使用价值等进行的测试和评估。评价项目包括评测的内容。针对本软件的评价如下:

(1)功能评价

根据该软件开发设计之前所预设的目标,在雷电项目完成后进行了相关测试,与预期设定相符。比如关卡的选择、子弹的选择、“大招”清屏的运用都可以体现出来,在项目完成之后可以满足用户的整体要求。

  1. 技术评价

    经过对该雷电游戏进行系统的测试,表明该雷电游戏在规定的时间内达到了预定的功能目标,具有较强的使用能力,技术成熟。

  1. 经济评价

    经过对该雷电游戏进行系统的测试,在规定的时间以及项目开发要求内,达到了预期项目开发的要求,对整个雷电游戏的管理中节约了时间和精力。在软件以后的改善中,如对各个关卡的变更,可以针对其中的模块进行修改,节省了精力。

总结和展望

大学四年匆匆如流水,从刚开始对大学的迷茫到现在即将毕业之际的不舍将都随着这次毕业设计的完成画上一个留恋的句号。Java语言因为其特征显著,受用性十分广泛,所以我选择基于Java的雷电游戏作为我的毕业设计。这也是我首次独立的利用Java编写项目。在项目开发期间,我对Java编程语言有了更为深刻的领悟,也更进一步的了解了Eclipse平台,对基于Java的软件开发进行了实践。通过这次毕业设计,我也有了深刻的感悟,要想完美的开发一个项目,需要的准备必须细致且熟练。整个项目的开发,大学四年所学专业知识多多少少都会用到,这对即将毕业的我们也是一次挑战。比如说会用到软件专业外语进行外文的翻译,Eclipse的使用介绍等等。

整个项目在按照之前制定的方案大体上完成了雷电游戏的设计,当然在具体开发上,由于自身水平有所局限,所开发的项目并不是十分完美,但我会在后期所学知识的基础上进行改善,我相信,经过坚持不懈学习,我一定能写出更加完善的程序。

  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值