-
上一篇中我们给主战坦克添加了发射炮弹的功能。不过有一个问题,炮弹飞到战场边缘时,自动消失的感觉不太好。我们今天来给炮弹加上一个爆炸的效果。 爆炸功能 爆炸的效果不仅仅用在炮弹上,当坦克被击中后也应该有这么一个爆炸效果。我们给所有的元素都抽象一个爆炸的功能,放在Object类中。
2017/1/4 |
软件开发 |
评论:3
-
上一篇中,我们添加了可以自动行驶的敌人坦克,今天我们给主战坦克添加最核心的功能——开炮。 第一次重构 既然要开炮,就要有炮弹。我们自然就想到要新建一个炮弹类。为了符合我们之前的设计思想,我们需要给这个新的炮弹类找一个基类。用Tank类作基类貌似不太合适,于是,我们要重构代码。 我们创建一个全新的Object类作为今后程序中所有类的基类。
2016/12/30 |
软件开发 |
评论:1
-
战场范围 之前我们的坦克从战场的一边走出之后会从另一边重新进入战场。这样不符合我们游戏的定义。我们需要把它们改成遇到战场边就不能再继续向前走了。 主战坦克 修改MainTank.cpp中的Move方法...
2016/12/27 |
软件开发 |
评论:0
-
这一篇中,我们继续继续进行我们的坦克大战。 位置信息数据结构 在游戏设计过程中,需要记录大量的位置信息,如果仅仅使用(x,y)坐标很容易出错。这一篇中,我们先定义两个简单的数据结构用来保存点和矩形的信息。 在项目中新建Model目录,创建下面四个文件:... 这个头文件创建了一个Point类,有两个成员变量m_x,m_y用来记录一个点的横、纵坐标。
2016/12/13 |
软件开发 |
评论:4
-
对坦克大战情有独钟是因为大学时候第一次参加程序设计比赛就做的这个游戏。当时用的语言是Java,那个比赛让我悟出了面向对象的强大之处,我也是从那时开始接触设计模式的。对我而言,坦克大战有着非同寻常的意义,所以一定要带大家用C++实现一下。 知识准备 建议大家先看看面向对象编程的三个重要特性,之后再来学习后面的内容。 代码分享 这个项目中的代码会在GitHub上发布,里面的每一个分支对应着简书中的每
2016/12/7 |
软件开发 |
评论:11