坦克大战游戏设计(C++)

设计:实现一款C++版的经典坦克大战游戏。

   

功能设计:

1)实现双人对战功能。获胜:但消灭对方所有坦克或者先炸毁对方总部。

2)战场由一个一个的格子构成,纵横为26*26格、坦克为2*2格、总部军旗2*2、子弹为2*1、石块与铁块:1*1

    坦克与子弹每次移动一格、以战场左下角为坐标点原始点[x:0,y:0],横向x,纵向y。确定每个物体的坐标为[x1,x2]、[y1,y2]。

3)坦克事件:“()”表示技术实现

生成:在原始地点生成(即赋予原始坐标)

移动/不可移动:收到移动命令、判断移前方的2*1是否为空格,是则移动,否则放弃移动。

移动速度:如果一直按下移动键,那不是开得很快?

转向:收到左转或者右转命令时移动(清除原先位置,再画下个位置)

被击中:当与子弹重合时,坦克被击毁(延时显示爆炸画面,然后消失)

射击:每次射击一次,当子弹消失时才能,继续射击。

4)子弹事件:

生成:在坦克炮管前方生成,先给坐标、先判断击中,击中则消失、未击中则取子弹前方下一格继续判断(即移动)。

是否击中:当与边界、坦克、子弹、石块、铁块、重合时消失。

移动:子弹移动速度,取决于在格子的停留时间,先设置为停留1/4秒后移动到下一格。

5)石块、铁块:

石块被击中:石块被子弹击中则消失。

对象设计

1)坦克对象:

坐标、方向、被击中、子弹状态。

2)战场对象:记录所有的石块、进行消除。

3)子弹对象:

对象

4)射击方向、

定时器:定时器时间一到检测所有子弹移动、再检测是否击中。

编程实现步骤:

1)对象。

2)实现战场绘画。

3)实现坦克的移动。

4)

实现过程中的讨论:

1)子弹不由战场对象管理,当要求子 弹对象的功能变得更加丰富时,如拐弯等,就该子弹对象。

把子弹挂到,坦克对象上。

2)每个子弹一个对象,还是一个对象管理多个子弹?

3)子弹移动的定时器如何实现?定时器时间到,如何调用方法实现:移动、判断击中。

使用MFC中的setTime.

4)如何进行图形显示?

5)如果坦克一直没有发射炮弹,那这个时候定时器一直开启不就浪费了系统效率?

5)定时时间到,如何检测:移动()、击中()?

线程与进程设计

1)线程一:检测用户输入,解析命令,调用相应的对象。

2)定时器:定时器到时间见

程序设计:

编程实现:

 未找到合适的IDE,能够满足图形界面的实现。

posted on 2016-05-27 10:29  Ndddup  阅读(2625)  评论(0)    收藏  举报

导航