Python实现坦克大战

一、前言

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

二、开发环境

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

作者:Zack

时间:2020年10月16日

集成开发工具:pycharm 2020

开发环境:python 3.7.9

第三方模块:pygame

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

三、项目介绍

3.1 项目截图

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

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

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

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

3.2 项目文件

下面是项目目录:

(1)resources

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

(2)main.py

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

from tank_war import TankWar

if __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。今天就介绍到这里了~

项目地址:https://github.com/IronSpiderMan/TankWar

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

java坦克大战墙壁图片_Python实现“坦克大战”相关推荐

  1. python飞机大战联网版_Python实现飞机大战(搞怪)游戏!这是你没见过的全新版本!...

    (飞机为迷你亚索,外星人为迷你小诺手,由于时间关系和图片素材较难寻找,仅仅做了简易版,没有贴上背景图片.由于篇幅原因,对于函数讲解较为简略,可以自行搜索相应函数的用法) 主要利用pygame内置库进行 ...

  2. python飞机大战加背景音乐_python实现飞机大战小游戏 python飞机大战中的音频文件怎么改成MP3...

    怎么样用Python写飞机大战游戏 python开发飞机大战外星人游戏怎么弄双人模式新的一年,哪怕仍是一个人,也要活得像一支队伍,为自己的头脑和心灵招兵买马,不气馁,有召唤,爱自由. 主函数 impo ...

  3. java飞机大战背景图片_Java简单飞机大战(1)

    在完成了多线程小球之后,就可以写一个飞机大战小游戏了,虽然比较简单,但玩起来还是有一点乐趣的.下面就讲一下我的大概思路和一些实现步骤. 一开始当然要想好一个框架,毕竟框架还是很重要的.当点击开始按钮的 ...

  4. python飞机大战游戏素材_python实现飞机大战微信小游戏

    0.前言 我学一种语言,可以说学任何东西都喜欢自己动手实践,总感觉自己动手一遍,就可以理解的更透彻,学python也一样,自己动手写代码,但更喜欢做点小东西出来,一边玩一边学.下面我就展示一下我最近做 ...

  5. python飞机大战游戏代码_python实现飞机大战游戏

    飞机大战(Python)代码分为两个python文件,工具类和主类,需要安装pygame模块,能完美运行(网上好多不完整的,调试得心累.实现出来,成就感还是满满的),如图所示: 完整代码如下: 1.工 ...

  6. 如何用java让坦克发射子弹_java怎么制作坦克大战

    对于一些小游戏的实现方法是很多小伙伴们都好奇的,也有很多小游戏是由Java而制作的,那么你知道java怎么制作坦克大战吗?接下来的内容中我们就一起去看看吧. 详情请参照注释,这里就不多废话了,实现一下 ...

  7. java坦克大战 实训报告_坦克大战系统《Java程序开发实训》综合实训报告.doc

    坦克大战系统<Java程序开发实训>综合实训报告 <Java程序开发实训>综合实训报告 题目: 坦克大战系统 姓名: 方庆 学号: 2010203206 班级: 10软件(2) ...

  8. java之详解坦克大战_Java之详解坦克大战游戏(一)

    相信大家小时候一定玩过坦克大战游戏,躲避敌方坦克,炸毁敌方坦克,不断向前进攻直逼敌方基地-这次,我们来实现一个简单版的坦克大战,我想学Java的人都有想到以前的按键手机里那菜单点开"Java ...

  9. java 坦克大战_java课程设计之坦克大战

    本文实例为大家分享了java坦克大战的具体代码,供大家参考,具体内容如下 环境要求: 操作系统:Windows 10 JAVA虚拟机:JDK1.8以上 开发环境:Eclipse(4.5以上) 功能提示 ...

最新文章

  1. 字节跳动副总裁杨震原:A/B测试不是万能的,但不会一定不行
  2. 【cocos2d-x】Lua中的table函数库
  3. Robot Framework自动化测试(六)--- robotremoteserver使用
  4. windows系统下安装JDK8的教程图解
  5. 音频处理七:(极坐标转换)
  6. FLEX+Delphi,FLEX+Java,FLEX+C# 的聊天室
  7. Spring使用JPA进行Dao层的数据访问以及事务管理
  8. Luogu2114 [NOI2014]起床困难综合症 【位运算】
  9. C语言解释器的实现--语法解析(五)
  10. Android 编程下的四大组件之服务(Service)
  11. oracle 1408,Oracle 11.2.0.2 Patch 说明
  12. 不同数据库的自增代码
  13. MySQL语句集锦(持续更新)
  14. java项目_值得学习和练手的Java企业级开源项目,强烈推荐!
  15. 2020年东三省数学建模联赛(辽宁赛区)获奖名单
  16. 一文读懂Soul上市:注册用户破亿,上市是福还是祸?
  17. CSP-J第一轮常考知识点
  18. python求助神器_【python从零开始(被称之为神器的装饰器)】- 环球网校
  19. 网易定向预研图形学项目摘录
  20. Whitelabel Error Page问题解决方案

热门文章

  1. 2022年造价员土建工程考试模拟试题卷及答案
  2. 张孝祥老师走了,心里难受,程序员们要多关注自己身体
  3. linux 显卡亮度,在Deepin 15.10系统中安装NVIDIA显卡驱动后设置屏幕亮度的方法
  4. 正确在遍历中删除List元素
  5. ruoyi 多模块部署_若依ruoyi前后端分离版服务器部署
  6. 从古代名著看领导与被领导的艺术
  7. 阿里巴巴领域建模实践
  8. Java可变参数列表
  9. 有什么好的模型可以提高时间序列预测的准确率
  10. 常用开发工具基本操作——CCS, VSCode, CANoe,Matlab,QT