坦克大战报告

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

JAVA程序开发课程设计

课程大作业

专业:软件工程

班级:14软工2

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

*名:***

项目名称:坦克大战

一、需求分析:

1.基本功能:

(1)我方坦克能上下移动

(2)敌方坦克能自由移动

(3)我方坦克能开火

(4)敌方坦克能自由开火

(5)子弹打中我方,会减血,我方打中敌方,敌死。敌打敌不会受伤

(6)有血条,主界面

2.扩展功能

(1)用图形来表示坦克和炮弹

(2)用图形来表示中子弹后的爆炸效果

(3)地图上存在金属墙,我方坦克和子弹不能穿过

(4)地图上存在曹村,我方和敌方坦克能够自由穿过,子弹也一样

(5)地图上会随机出现加血包

(6)我方坦克遇到加血包,会增加生命

(7)游戏开始时,会启动背景音乐

(8)我方坦克死亡时,提示游戏结束

二、系统设计:

1. BgMusic

(1)主要功能:添加背景音乐

TankMap类通过调用该类,并读取BgMusic包下面的背景音乐文件(2)成员属性:

1)filename,用于记录读取到的文件名,并处理

2)nBytesRead,这是缓存,用于读取音乐文件,缓存下来(3)成员方法:

1)run,播放背景音乐

2)构造方法BgMusic,将读取到的文件名,存储到成员属性filename中

2. Blood

(1)主要功能:地图中添加血包

(2)成员属性:

1)x,y,width,height,血包的位置以及宽高

2)rpos_x,rpos_y,用于记录血包移动后的位置

3)tm,调用TankMap类,并在地图中放血包

4)live,血包的存活,被坦克吃了就消失

5) blood,用于记录血包的存活

6)step,血包的步长

7)stepMove,血包走过总的步长

(3)成员方法:

1)Blood,构造方法,将血包放到地图中

2)draw,画血包

3)move,血包的移动

4)getRect,获取血包的位置

3. Tank

(1)主要功能:地图中添加我方坦克

(2)成员属性:

1)WIDTH,HEIGHT,xspeed,yspeed,坦克的宽高和x,y上的移动速度2)x,y,direction,我方坦克出现的初始位置和初始状态

3)tm,调用TankMap类,并在地图中放坦克

4)isLive,我方坦克是否存活

5) isgood,坦克属于哪一方

6)life,我方坦克的初始生命值

7)step,使用Blood类,血包随机出现

8)upimage,rightimage,downimage,leftimage,oldimage,存放坦克图片(3)成员方法:

1)draw,绘制坦克

2)move,根据移动方向,移动坦克,不允许坦克移除地图

3)checkDirection,确定用户单击的方向键,修正坦克即将移动方向

4)fire,发射子弹

5)getRec,返回坦克当前位置,便于判断是否与敌方坦克或子弹重叠

6)stay,坦克撞墙的处理

7)eat,我方坦克吃血包

4.EnemyTank

(1)主要功能:地图中添加敌方坦克

(2)成员属性:

1)WIDTH,HEIGHT,xspeed,yspeed,坦克的宽高和x,y上的移动速度2)x,y,direction,我方坦克出现的初始位置和初始状态

3)tm,调用TankMap类,并在地图中放坦克

4)islive,我方坦克是否存活

5)enemytank,存放坦克图片

(3)成员方法:

1)draw,绘制坦克

2)move,根据移动方向,移动坦克,不允许坦克移除地图

3)fire,发射子弹

4.Explor

(1)主要功能:子弹打中坦克,发生爆炸效果

(2)成员属性:

1)x,y,坦克出现的位置

2)tm,调用TankMap类,并在地图中放爆炸

3)islive,我方坦克是否存活

(3)成员方法:

1)draw,绘制爆炸

2)Explor,爆炸的构造方法

5.Help

(1)主要功能:给用户游戏帮助

(2)成员属性:

1)help,将帮助的文字存放在字符串中

(3)成员方法:

1)getHelpDialog,调用帮助

6.Shell

(1)主要功能:设计子弹

(2)成员属性:

1)WIDTH,HEIGHT,xspeed,yspeed,子弹的宽高和x,y上的移动速度2)x,y,direction,子弹出现的位置和方向

3)tm,调用TankMap类,并在地图中放子弹

4)isLive,子弹是否打中坦克

5)isgood,是否是我方

6)Image,加载子弹图片

(3)成员方法:

1)draw,绘制子弹

2)move,根据移动方向,移动坦克,得到子弹的移动

3)getRec,获取坦克的位置

4)hitTanks,子弹打坦克

5)hitWalls,子弹打墙

7.Wall

(1)主要功能:给地图添加墙

(2)成员属性:

1)x,y,w,h,墙的位置和宽度高度

2)tc,地图

(3)成员方法:

1)draw,画墙

2)getRect,获取墙的位置

8.TankMap

(1)主要功能:地图

(2)成员属性:

1)MAPWIDTH,MAPHEIGHT,地图的宽高

2)t,我方坦克

3)bufferImage,缓冲,用于解决闪屏

4)forestimage,草丛

5)shells,EnemyTank,Blood,Explors泛型

6)enemyCount,敌方坦克数量

7)w1,w2,不可穿过的墙

(3)成员方法:

1)init,初始化地图

相关文档
最新文档