Python使用pygame实现经典坦克大战游戏

简介: Python使用pygame实现经典坦克大战游戏

前段时间,也就是国庆节。在寝室闲来无事,用 pygame 写了一个小游戏,就是标题写的《坦克大战》。这个游戏写了两个版本,第一个版本是按照书上的思想来写的,发现写到后面的时候代码太乱了。于是我又从头开始,用比较合理的面向对象思想重新写了一个版本。说比较合理也只是符合我自己的思想,所以难免会有一些不合理的设计,水平有限,希望各位读者能够包涵一下。


二、开发环境


我们先来看看我的开发环境,用的东西还是比较简单的:

作者:Zack 时间:2020年10月16日 集成开发工具:pycharm 2020 开发环境:python 3.7.9 第三方模块:pygame

其中我还用了一些第三方模块,但是在游戏主体中没有使用,所以就先不介绍了。下面我们来看看游戏实现了些什么功能。


三、项目介绍


3.1 项目截图

我们主程序入口在 main.py 文件,在安装好 pygame 模块后就能直接运行。下面是运行截图:



image.png


下面是子弹击中墙壁的爆炸效果:


image.png


下面是多个敌方坦克的效果图:



image.png


我们再来看看项目的各个文件。

3.2 项目文件

下面是项目目录:


2514df1b6c6d9435d568cd491db3934e.png


(1)resources

其中 resources 是资源文件,音频、图片等都在 resources 目录。而 tools 中提供了两个小工具,因为只是供个人临时使用的,这里不过多解释了。


(2)main.py

而 main.py 则是项目的主入口,代码很短:

fromtank_warimportTankWarif__name__=='__main__':tankWar=TankWar()tankWar.run_game()


我们直接创建了 TankWar 的实例,然后调用 run_game 方法运行游戏。


(3)tank_war.py


tank_war.py 中写了我们坦克大战游戏主体的模块,里面的 TankWar 类定义了游戏主体的一切行为。包括初始化屏幕、初始化 pygame 模块、创建敌方坦克、绘制地图、检测碰撞、监听事件等。


(4)sprites.py


在 pygame 中提供了一个 sprite 类用于创建有图像的物体。而 sprites 中定义的都是 sprite 的子类,因此也都是有图片的类。其中包括坦克基类、英雄类(我方坦克)、敌人类(敌方坦克)、子弹类、墙类等。


而各个类中定义了各自的行为,例如:坦克类有发射子弹的行为、移动的行为、爆炸的行为等。


(5)settings.py


settings.py 中定义了一些设置信息,包括子弹的数量、子弹的速度、坦克的速度、地图信息、图片信息等。我们可以通过修改 settings.py 来调整游戏的一些设置,因为还没有写设置相关的操作,所以需要修改源码。


因为代码比较多,这里就不介绍代码了。游戏还要许多不足之处,后续会继续更新。项目已上传 GitHub,欢迎各位来 fork。今天就介绍到这里了~


pygame 文档地址:https://www.pygame.org/docs/

相关文章
|
9天前
|
存储 人工智能 运维
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
102 47
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
|
6天前
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
|
19天前
|
Python
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
60 33
|
2月前
|
JSON 开发工具 git
基于Python和pygame的植物大战僵尸游戏设计源码
本项目是基于Python和pygame开发的植物大战僵尸游戏,包含125个文件,如PNG图像、Python源码等,提供丰富的游戏开发学习素材。游戏设计源码可从提供的链接下载。关键词:Python游戏开发、pygame、植物大战僵尸、源码分享。
|
3月前
|
IDE 开发工具 Python
Python扑克游戏编程---摸大点
Python扑克游戏编程---摸大点
68 1
|
3月前
|
数据采集 前端开发 Python
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
107 0
|
8月前
|
存储 Python
如何使用Python实现“猜数字”游戏
本文介绍了使用Python实现“猜数字”游戏的过程。游戏规则是玩家在给定范围内猜一个由计算机随机生成的整数,猜对则获胜。代码中,首先导入random模块生成随机数,然后在循环中获取玩家输入并判断大小,提供猜小、猜大提示。通过增加猜测次数限制、难度选择、优化输入提示和图形化界面等方式可优化游戏。这篇文章旨在帮助初学者通过实际操作学习Python编程。
320 2
|
Python
Python实现猜数字游戏
Python实现猜数字游戏
157 0
|
8月前
|
IDE 开发工具 Python
用python写出一个猜数字游戏
用python写出一个猜数字游戏
87 4
|
8月前
|
Python
用 Python 写一个猜数字游戏并运行它
用 Python 写一个猜数字游戏并运行它
39 0