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/

相关文章
|
3月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
5月前
|
存储 算法 区块链
从零实现Python扫雷游戏:完整开发指南与深度解析
扫雷作为Windows经典游戏,承载了许多人的童年回忆。本文将详细介绍如何使用Python和Tkinter库从零开始构建一个功能完整的扫雷游戏,涵盖游戏设计、算法实现和界面开发的全过程。
440 0
|
7月前
|
程序员 Python
使用CodeBuddy基于Pygame模块实现贪吃蛇游戏
在上班时间用 CodeBuddy 搞贪吃蛇游戏,一开始我还有点小愧疚,但现在回头想想,这简直是我打工人生活里的高光时刻!既能缓解压力,又能激发创造力、提升技术,妥妥的 “摸鱼赢家”!下次摸鱼,我准备再整点新花样,搞个俄罗斯方块啥的,美滋滋!
157 11
使用CodeBuddy基于Pygame模块实现贪吃蛇游戏
|
6月前
|
人工智能 搜索推荐 数据可视化
用 Python 制作简单小游戏教程:手把手教你开发猜数字游戏
本教程详细讲解了用Python实现经典猜数字游戏的完整流程,涵盖从基础规则到高级功能的全方位开发。内容包括游戏逻辑设计、输入验证与错误处理、猜测次数统计、难度选择、彩色输出等核心功能,并提供完整代码示例。同时,介绍了开发环境搭建及调试方法,帮助初学者快速上手。最后还提出了图形界面、网络对战、成就系统等扩展方向,鼓励读者自主创新,打造个性化游戏版本。适合Python入门者实践与进阶学习。
740 1
|
6月前
|
存储 算法 数据可视化
用Python开发猜数字游戏:从零开始的手把手教程
猜数字游戏是编程入门经典项目,涵盖变量、循环、条件判断等核心概念。玩家通过输入猜测电脑生成的随机数,程序给出提示直至猜中。项目从基础实现到功能扩展,逐步提升难度,适合各阶段Python学习者。
461 0
|
11月前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
558 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
11月前
|
Java 图形学 Python
用Python和Pygame打造绚丽烟花效果+节日祝福语
本文介绍了一款基于Python和Pygame库实现的烟花效果程序,模拟烟花发射、爆炸及粒子轨迹,结合动态文本显示祝福语,营造逼真的节日氛围。程序包括烟花类、粒子类、痕迹类和动态文本显示功能,通过随机化颜色、速度和粒子数量增加效果多样性。用户可以看到烟花从屏幕底部发射、上升并在空中爆炸,伴随粒子轨迹和动态祝福语“蛇年大吉”、“Happy Spring Festival”。文章详细解析了核心代码逻辑和技术要点,帮助读者理解如何利用Pygame库实现复杂视觉效果,并提供了未来改进方向,如优化性能、增加特效和增强交互性。
692 20
用Python和Pygame打造绚丽烟花效果+节日祝福语
|
存储 人工智能 算法
使用 Python 和 Pygame 制作游戏:第九章到第十章
使用 Python 和 Pygame 制作游戏:第九章到第十章
340 0
使用 Python 和 Pygame 制作游戏:第九章到第十章

推荐镜像

更多