仿“经典90坦克大战”的小游戏——T-T

来源:爱酷猪责编:网络时间:2024-05-11 04:01:05

本期我们将制作一款模仿“经典90坦克大战”的小游戏。 啊,我记得上次玩这个游戏是在我上小学的时候。 T_T这真是个暴露年龄的游戏。

算了,咱们愉快的开始吧~

相关文件

百度网盘下载链接:

密码:eksw

图片素材来自网络,已删除。

开发工具

版本:3.6.4

相关模块:模块; 以及一些内置模块。

环境设置

安装并添加到环境变量中,使用pip安装需要的相关模块。

抢先看

点击链接观看视频

原理介绍

T_T感觉他的代码整体逻辑很清晰经典90坦克大战,也做了很多必要的注释,所以这里只讲主要思想。 请阅读我的源代码以了解一些实现细节。

游戏规则:

游戏有两种模式:单人游戏和双人游戏。 如果你的大本营被摧毁或者你的坦克被摧毁,游戏就会失败。 如果你成功通过所有关卡,游戏就会获胜。 此外,玩家还可以射击特定的坦克,让道具随机出现在地图上。 如果己方坦克拾取该道具,就会触发一个事件,例如坦克能力增强。

玩家操作如下:

玩家一:

wsad键:上、下、左、右;

空格键:射击。

玩家二:

↑↓←→键:上、下、左、右;

键盘0:拍摄。

逐步实施:

Step1:定义elf类

因为游戏肯定涉及到碰撞检测,所以我们需要定义一些精灵类。

首先,既然是坦克战,就必须有坦克吧?

友方坦克:

上面的代码定义了坦克的一些属性,比如速度、等级、是否受到保护等。

当然,这里也实例化了一个类。 我们稍后会对此进行定义。 我们假设先有这个类,这样主要逻辑就完整了。 不然坦克没有子弹等级怎么能射击呢?

当然,仅有属性是不够的。 我们还需要赋予坦克一些能力,比如上面提到的射击:

当然也有上、下、左、右的动作,因为都是类似的。 这里只给出向上移动的源码:

啊,还有水箱的上下调平:

最后,当然,坦克死后会重置:

敌方坦克:

敌方坦克和友方坦克定义的源代码很相似,只是移动是随机的,死后无法复活,所以就不截图了T_T。

现在,我们可以定义项目符号类了!

项目符号:

子弹类应该具有速度、强度以及选择方向和运动的能力等属性:

最后,让我们定义涉及碰撞检测的其他对象类。

大本营:

有两种状态:正常和破坏:

地图障碍:

包括砖墙、钢墙、森林、河流和冰:

食物道具:

道具一共有7种,不同的道具对应不同的效果:

Step2:设计游戏地图

Emmmm,游戏背景是黑色的,然后在上面堆放一些步骤1中定义的障碍物就完成了地图设计。 其中,钢墙是普通子弹无法击破的,砖墙是任何子弹都可以击破的。 除了墙壁之外,坦克可以穿过任何障碍物,但没有附加效果(感兴趣的朋友可以自行拓展~比如在冰上坦克加速等):

我比较懒,只设计了一张地图和两个关卡。 有兴趣的朋友还可以在此基础上设计更多的地图和关卡。

Step3:实现游戏的主循环

主循环的代码比较长,但是逻辑很清晰。 首先,显示游戏开始界面。 玩家在此界面选择游戏模式并进入游戏。 游戏中需要进行一系列的碰撞检测和一系列触发碰撞的事件,并绘制所有当前存在的物体。 最后,如果游戏失败,则会显示游戏失败界面。 如果关卡通过,就会显示游戏成功界面(我比较懒,界面设计比较简单,有兴趣的朋友可以扩展一下~)。

这里把代码截图一下就可以了(拍长图比较麻烦T_T)~

全做完了!

完整的源代码、游戏素材以及打包的游戏文件都在相关文件中。 大家可以自行下载查看哦~

猜你喜欢
最新游戏更多
热门专题更多
最新资讯更多