c#坦克大战实现

 

下载地址:http://download.youkuaiyun.com/detail/panyixia/4398358

优快云上关于坦克游戏的代码比较多的。但多不能算得上是坦克大战,他们做的只是最基础的几俩坦克来回移动,连背景都没有添加。

做这个坦克大战,我自己学C#纠结了很久。看了很多文章,没有多少收获。终于有一天,脑子灵光一闪,被自己给整出来了。

 

效果图就像上面展示的一样。

缺点:没有精力完善这个游戏,就差最后的规则制定部分,和各种奖励机制。最核心的部分都已经被我写出来了。希望各位大神能够在本人代码上加以改进。本人代码力图注释详细。坦克之间的碰撞检测,本人写了代码,但是貌似没有实现。具体原因我还没有深入分析,在本人代码中已经把它注释掉了。大神们可以改进实现。在此,thankyou.

 

游戏设计思路:

 

        网上,看过很多文章,小花朵大哥写的坦克博文是挺好的。它是用picturebox做的。网上还有惠哥的新浪博客的坦克需求分析文档等,也写的挺好了。在写这个游戏之前,我纠结了很久,看了很多博文。最后还是没有多少思路。主要是不知道如何解决线程间的冲突。

       如果坦克游戏中,游戏元素很少的时候,比如说只有敌方坦克和我方坦克的时候,那么线程冲突是很好解决的。一旦加入了墙体等多种元素之后,那么先后顺序就显得很重要。线程冲突问题会越发明显。在游戏初期,本人一直死在线程间冲突上。后来想通了。于是也就很顺利的实现了。阿门。

 

 

 

游戏设计:

.坐标类Coordination类为基类,元素类(Element类)继承坐标类。

.因为有玩家坦克和敌方坦克,因此需要有MyTank类和EnemyTank类,他们都继承Element类。我方坦克是通过键盘来控制,敌方坦克是通过系统自动控制的,因此敌方坦克还需要一个自动行走的规则。敌方有四种坦克,有的速度快,有的命长...因此需要设计一个TANK类,同时枚举坦克的四个属性TankType。

.坦克有子弹,因此需要子弹类(Bullet类),由于子弹有不动的属性,因此需要枚举BullettType

.游戏中有墙,需要WALL类;有金属,需要STEEL类,金属墙的不同在于金属在坦克子弹撞击后不会毁坏,墙会毁坏。他们都继承Element类。

.判断游戏是否胜利通过设置一个Boss类,观察子弹是否打到Boss如果打到了,就游戏结束。

.坦克诞生时候,会出现小星星因此加了个TankBorn类,来显示坦克出现前的小星星闪烁效果。

.坦克打到墙的时候,撞击应当会发生爆炸效果。因此需要Blast类来显示爆炸效果。

 .同时游戏中还枚举了方向Direction,因为方向在游戏代码中用到很多。

    在游戏设计上,本人力图代码能让人看懂。因此学习了c#写作规范。图书馆里一本包善东的《更锋利的C#》让我学习很多。

上面是代码示例,如果觉得还行,那么,下载地址:http://download.youkuaiyun.com/detail/panyixia/4398358

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值