坦克大战报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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,初始化地图