小项目の坦克大战游戏

项目名称:坦克大战游戏(说明文档)


项目描述:仿马士兵老师的单机版简单的坦克大战游戏,能够实现敌我双方互相攻击,实现坦克击毙后爆炸的效果,坦克能够从任意方向行驶和发射炮弹,增加障碍,能阻碍坦克的行走

项目所使用的一些技术:GUI,事件监听,多线程,简单理解一些设计模式和反射机制,重要的是理解面向对象的思想

项目过程
1.建立游戏界面
产生一个合适的窗口,并设置其为不可更改框架大小,添加关闭窗口事件,关闭窗口。

2.画出一辆坦克
用圆来模拟一辆坦克。

3.让坦克动起来
启动一个线程来不断重画坦克让坦克动起来,当窗口显示时线程开始运行。

4.消除坦克移动时的闪烁
调用update方法
创建一副和窗口大小的背景虚拟图片,把原先坦克完整的画到此图片上然后再在窗口显示出此图片

5.控制坦克行走
响应键盘事件,按下相应键后完成移动。

6.坦克朝八个方向行走
利用枚举类型定义八个方向,定义四个方向的布尔值
默认坦克初始方向为静止
根据按键响应来确定按的哪些方向写一个移动的方法并在画坦克后调用
如果按键抬起后方向布尔值为false

7.添加子弹类
增加一个子弹类,添加一个构造方法,画出该子弹,添加子弹移动方向根据坦克移动的方向而移动,在坦克类中有一打子弹方法根据坦克中心位置打出子弹
响应CONTROL键在此键上调用打子弹方法。

8.解决子弹在坦克停下后打不出问题
根据炮筒的方向来打出子弹
在坦克类中定义一个炮筒变量,在DRAW方法中画出,但坦克移动时如果方向不是停止就把方向改为炮筒方向,构造子弹类时传递炮筒方向。

9.打出多发炮弹
添加一个子弹类型的容器。
在画的时候拿到每一个子弹,画出在坦克打出子弹的方法中添加每一颗子弹
如果子弹移动到游戏窗口外就认为其死亡在子弹类移动方法中判断是否出界
如果出界则画了子弹方法中判断子弹是否死亡,若死了就不画了。

10.画一辆敌人坦克
增加一个区分敌我的坦克量Good,增加相应的方法设置好坏,如果是坏坦克就画为蓝色的,否则为红色的,修改构造方法在类中NEW出敌人坦克

11.将敌人坦克击毙
在子弹类中加入一个打坦克的方法参数传递坦克类型
分别在子弹与坦克类中添加碰撞检测方法
在击中坦克方法中判断是否碰撞如果碰撞,子弹消失,敌人坦克死亡(不重画)。

12.添加爆炸类
定义一个爆炸生死变量,默认为true.
用不同直径的圆模拟爆炸,在画爆炸时判断是否活着,如果没活就移除它,如果活着就按不同的直径的圆画它。
通过容器装入爆炸,在打坦克后添加每一个爆炸,调用爆炸类构造类函数

13.添加多辆坦克
用容器装敌人坦克,在窗口方法中添加多辆坦克。
打击多辆坦克,加入一个打击一个容器的坦克方法,在调用相应方法

14.智能的敌人坦克
敌人坦克动起来,在坦克类构造函数中添加方向,NEW TANK时设定某一个方向,敌人坦克随即懂起来,需要加一个RANDOM类,在坦克移动方法中判断是不是好坦克不是则拿到方向,随即步骤移动
敌军坦克发射炮弹,本军炮弹不打本军坦克,子弹类中添加一个子弹好坏的变量,如果子弹和坦克不同则可打击对方,如果子弹死了不画了

15.坦克出界问题
坦克移动方法中判断坦克位置是否小于或大于窗口大小,做出相应的解决。

16.在窗口中添加两堵墙
添加一个墙类,定义构造方法,画出两堵墙在主类中NEW出两堵墙来
子弹不能穿过墙
在墙这个类中增加一个碰撞检测方法在子弹类中增加一个子弹碰撞检测方法,判断是否撞上,如果撞上了子弹死去。
坦克不能穿过墙
在坦克类中定义一个坦克移动前一步的变量记录坦克撞到墙后的前一步,判断是否撞到,若撞到则返回到前一步

17.坦克互相穿越问题
坦克类中增加撞击坦克方法
判断两辆坦克是否相等,如果不等判断是不是活着,并且撞击到,如果撞到则调用返回前一步的方法

18.添加一个超级炮弹
子弹朝八个方向发射,CTRL键发射
在子弹类中添加一个发射炮弹的方法有一个方向参数,加入一个发射多发炮弹的方法,拿到八个方向的素质将这些数值转换为数组传递到相应方法中,处理按键A调用发射超级炮弹的方法。

19.增加生命值
增加一个坦克生命值初始为100.
如果子弹打中坦克如果是好坦克生命值减去20
如果生命值小于等于0了,坦克就死了,如果是坏坦克打中就死。
血条表示生命值
在坦克类中增加一个血条内部类
在类中加入画血条的方法,画坦克时调用。

20.敌人与我军他那颗时候解决的问题
敌人死了重新加入
在画坦克时判断是否没有坦克了,若没就增加。
我军时候按F2开始
增加对F2按键处理,如果死了设置为TRUE并且设置生命值为满

21.图形化此游戏。
加入爆炸图片
将爆炸图片代替圆,添加一个TOOLKIT类拿到系统工具
用一个图像数组装图,画的时候画出图。
加入坦克图片
将坦克图片代替圆,用MAP容器装
坦克的方向按着坦克的图片来画
加入子弹图片
方法与加入坦克图片相似。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值