坦克大战系统《Java程序开发实训》综合实训报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《Java程序开发实训》综合实训报告

题目:坦克大战系统

**:**

学号:**********

班级:10软件(2)班

一、系统实现的主要功能及运行结果截图

选择的语言的原因

游戏本身是一种娱乐方式,带给人无尽的乐趣,而且游戏行业的发展也将是带动周边行业的发展。同样对做出游戏的人的要求也会越来越高一满足游戏爱好者的要求。本次期末设计就是设计一种娱乐性较强的小游戏坦克大战,说到大战其实是不敢当的。但游戏基本拥有可玩性。java语言是一种跨平台,适合与分布计算环境的面向对象编程语言,java主要用在web开发,手机游戏及一些平台游戏的开发,他有很好的跨平台性。所以本次的设计坦克游戏选择的是java。

系统软件的软件环境

1.网络服务器操作系统:Window是 XP以上

2.开发工具:Eclipse

3运行环境:J2sdk

4.编程语言:java语言。

人机对战模式功能

1.能够发射子弹打击敌人

2.敌人能够移动

3.能够模拟爆炸

4.能够产生障碍

5能够增长生命6.能够使用超级子弹

坦克可以发射子弹

玩家坦克被击中血量减少。

被击中的坦克发生爆炸并且吃血块可以加血量。

玩家坦克可以从把方向发射超级子弹

自己的TankHealth为<=0时,。说明玩家坦克已死亡。游戏结束

本系统的坦克大战是基于java语言设计的开发,具有较高的人工智能和相对的图形处理。游戏可一人作战每次电脑方有10辆坦克,

此一举消灭全部的敌方坦克为目的。在这过程中坦克有机会得到血块来添加自己的生命值。从而变得强大。也利用wall来形成阻击敌人。

游戏拥有开挂的功能。可以穿过墙体来攻击敌方坦克。还给玩家坦克

置了超级炮弹。从八个方向同时射出炮弹来摧毁敌方坦克。主要功能

简单罗列如下:

1.屏幕左上方显示游戏的状态,当玩家方坦克全数为0是游戏结束

2.敌方坦克只在空地上行走,不可通过Wall

3.游戏打坏敌方坦克后,可随机位置随机出现血块奖励。坦克经过该

位置可获得相应的生命值加成。

4.玩家坦克的游戏资格和电脑坦克不同。

TankClient类设计流程

游戏系统类关联图

TankClient类

此类主要功能是利用java中包来实现的坦克游戏的主主窗口,以及对其他类调用和实例化

Blood类

此类主要定义坦克的生命值,有可以控制玩家坦克加血等操作方法。

Missile类

此类主要的是游戏中的炮弹类,其中有炮弹的大小以及移动等成员。

BaoZha类

此类定义的是坦克被攻击的爆炸,其中有坦克击毁的图形变化等成员。

Tank基本类功能分析

Tank类中,封装了一些变量属性,包括坦克自己的大小。运动速度方向控制、生死控制、好坏控制。Tank类中没有main函数,不是主类,它当中只封装一些变量属性和静态方法,被TankClient类调用来实现坦克的一系列动作Tank类主要方法如下:

1.getRect()方法

public Rectangle getRect(){

Return new Rectangle(x,y this.WIDTH,this.HEIGHT)

Rectangle类是碰撞检测的辅助类,通过得到子弹x,y的坐标。检测是否碰撞.

2.draw()方法:负责将所有的活动在屏幕上画出来;

3.move()方法:主要负责坦克的移动,包括八个方向的控制以及坦克一个移动速度;

4.boolean()方法:设定键盘事件。控制坦克移动

5.KeyRelesed()方法:处理按键抬起事件,安“J”键时,发射普通炮弹。抬起“K”键发射超级炮弹

6.locationDirection()方法:定义炮筒的方向,可以向八个方向发射炮弹

7.fire()方法:处理发送子弹的方法;

Missile类的基本功能分析

Missile(子弹)类和Tank类一样,只封装一些变量属性和静态方法,主要包括:子弹的大小,运动的速度,Missile类持有一个TankClient类的引用tc,TankClient类要执行发射炮弹操作是调用Missile类中的方法。Missile类中的方法主要如下:

1.draw()方法:负责画出子弹的所有活动

2.move()方法:先判断方向在移动。并且给一定的移动速度。

3.个头Rect方法:负责取得子弹的方形,为碰撞做准备;

4.hitTank()方法:检测子弹是否撞到坦克撞到返回ture,否则返回false。BaoZha类的基本功能分析

BaoZha(爆炸)类也是封装自己的变量和方法的外部包装类,没有main方法,供TankClient主类需要时调用它的draw()方法,当子弹击中坦克是需要产生爆炸。下面是爆炸的图片:

二、综合实训过程中遇到的问题及解决方法

遇到的问题:

炮弹不消失

坦克出界

解决方案:

加入控制炮弹生死的量live(Missile)

当炮弹死去的就不需要对其重画

当炮弹飞出边界就消失

但炮弹死亡就从界面上消失

三、本次综合实训中的收获及体会

学习java两个学期来,有自己的一些见解。Java是面向对象的,具有平台无关性,现在被广泛应用很多领域。也是因为老师在开始讲课是给我们讲解过,所以有兴趣去学习java程序设计。首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 Platform Standard Edition,我们经常说到的JDK,就主要指的这个,它是三者的基础,属于桌面级应用开发,这部分如果学得好很容易拓展J2EE和J2ME。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式Java,如手机,PDA等等。J2EE,Java 2 Platform,Enterprise Edition,就是所谓的企业级Java,适合企业的大型应用开发。我感觉学习java应该是循环渐进,有始有终,按部就班,脚踏地.java是一门有着阶梯性的一门语言,如果要学习它.我觉得最好还是按照java的学习体系,先学习什么,在学习什么,只有这样,我们在学习中才会遇到更少的麻烦.感觉java 是一门更倾向于网络的语言.不要上来就学习JSP,这样不好,因为这没有基础.在以后的学习中很可能遇到很多的麻烦,这就不好了.信心,恒心,毅力是最重要

相关文档
最新文档