首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用 Python 写个坦克大战

文 | 野客 来源:Python 技术「ID: pythonall」 坦克大战是一款策略类的平面射击游戏,于 1985 年由 Namco 游戏公司发布,尽管时至今日已经有了很多衍生类的游戏,但这款游戏仍然受到了相当一部分人的欢迎...,本文我们看一下如何使用 Python 来实现这款游戏,游戏实现主要用到的 Python 库为 pygame。...简介 坦克大战的组成主要包括:场景、坦克、子弹、食物、大本营,其本质就是一个塔防类的游戏,游戏目标为:守住大本营并且消灭敌方坦克,通常支持单双人模式,下面我们来看一下具体实现。...,坦克包括我方坦克和敌方坦克,我方坦克由玩家自己控制移动、射击等操作,敌方坦克实现自动移动、射击等操作,代码实现如下: # 我方坦克类 class myTank(pygame.sprite.Sprite...总结 本文我们使用 Python 实现了坦克大战的基本功能,还有待完善,有兴趣的话,可以对游戏做进一步的完善和扩展。

2.1K40

用Python实现坦克大战游戏 | 干货贴

游戏以坦克战斗及保卫基地为主题,属于策略型联机类。同时也是FC平台上少有的内建关卡编辑器的几个游戏之一,玩家可自己创建独特的关卡,并通过获取一些道具使坦克和基地得到强化。...而今天我们就将利用python还原以下坦克大战的制作。...实验前的准备 首先我们使用的Python版本是3.6.5所用到的模块如下: Pygame模块用来创建游戏整体框架、精灵等基本架构; OS模块用来加载本地文件(包括音乐,背景、图片等素材)。...精灵类程序 其中精灵类设置作为基本程序框架用来主函数的调用,其中包括子弹类程序、食物类、家类、砖墙树木等障碍物类、坦克类。...,建立tanks.py包括坦克数量名称、初始位置等信息: '''玩家坦克类''' class PlayerTank(pygame.sprite.Sprite): def __init__(self,

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用Python实现坦克大战游戏 | 干货贴

    游戏以坦克战斗及保卫基地为主题,属于策略型联机类。同时也是FC平台上少有的内建关卡编辑器的几个游戏之一,玩家可自己创建独特的关卡,并通过获取一些道具使坦克和基地得到强化。...而今天我们就将利用python还原以下坦克大战的制作。 ?...实验前的准备 首先我们使用的Python版本是3.6.5所用到的模块如下: Pygame模块用来创建游戏整体框架、精灵等基本架构; OS模块用来加载本地文件(包括音乐,背景、图片等素材)。 ?...精灵类程序 其中精灵类设置作为基本程序框架用来主函数的调用,其中包括子弹类程序、食物类、家类、砖墙树木等障碍物类、坦克类。...,建立tanks.py包括坦克数量名称、初始位置等信息: '''玩家坦克类''' class PlayerTank(pygame.sprite.Sprite): def __init__(self,

    1.2K42

    Python实现80后童年经典游戏:坦克大战

    FC红白机上的“经典90坦克大战”是不少80后童年的集体回忆(暴露年龄了)。今天我们就分享一个用Python制作的仿“坦克大战”小游戏。...废话不多说,让我们愉快地开始吧~ 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可。...另外,玩家可以通过射击特定的坦克使地图上随机出现一个道具,若己方坦克捡到该道具,则触发一个事件,例如坦克能力的增强。 玩家操作方式如下: 玩家一: wsad键:上下左右; 空格键:射击。...首先,既然是坦克大战,总得有坦克吧? 己方坦克: ? 上面的代码定义了坦克的一些属性,例如速度、等级、是否处于受保护状态等等。...啊,还有坦克的等级提升与下降: ? 最后当然是坦克死后重置啦: ? 敌方坦克: 敌方坦克和己方坦克定义的源代码很相似,只不过移动是随机的,死后是不可复生的,就不截图了。

    2K20

    坦克大战游戏的设计

    坦克大战游戏的设计 一、功能描述:       这个坦克大战实现了我方坦克(玩家控制)以及敌方坦克(程序随机控制)的对战,当击毁所有敌方坦克之后玩家获胜,当我方坦克生命值被消耗完毕后失败。...游戏中,敌方坦克分为两类:一是快速的黄色坦克,二是有两点生命值的慢速坦克。玩家坦克的生命值一共为三。其中键盘的w、s、a、d分别控制坦克上下左右四个方向的移动,点击鼠标之后为发射子弹。...其中要注意的是,当子弹击中对方坦克或碰到障碍物消失之后才能发射下一个子弹。游戏过程中还会随机出现加速道具,获取之后玩家坦克的速度提升为初始的两倍。下面便是游戏的图片展示 : 游戏界面 ?...下面来进行分析: (一)多线程的处理:      在这个游戏中,最为核心的技术便是多线程的应用,我方坦克,敌方的十辆坦克、我方发射的子弹以及敌方坦克发射的子弹均为独立的线程,因此,在线程的控制上有了一定的难度...,由于各个线程的设计思路相似,因此我在玩家坦克类中成功测试石头小河等障碍物后,比较轻松得就将判断移植到其他的线程之中了。

    2.1K10

    Java实现坦克大战2.0

    线程-应用到坦克大战 坦克大战0.3 分析如何实现当用户按下J键,我们的坦克就发射一颗子弹,思路: 当发射一颗子弹后,就相当于启动一个线程 Hero有子弹的对象,当按下J时,我们就启动一个发射行为(线程...当子弹移动到面板的边界时,就应该销毁(把启动的子弹的线程销毁) 坦克大战0.4 增加功能 让敌人的坦克也能够发射子弹(可以有多颗子弹) 在敌人坦克类,使用Vector保存多个Shot 当每创建一个敌人坦克对象...,给该敌人坦克对象初始化一个Shot对象,同时启动Shot 在绘制敌人坦克时,需要遍历敌人坦克对象Vector,绘会制所有的子弹,当子弹isLive == false时,就从Vector移除 当我方坦克击中敌人坦克时...在创建敌人坦克对象时,启动线程 控制我方的坦克和敌人的坦克在规定的范围移动分析->解决 增加功能 我方坦克在发射的子弹消亡后,才能发射新的子弹....,可以再发射子弹 当敌人的坦克击中我方坦克时,我方坦克消失,并出现爆炸效果 思路:编写方法,判断敌人的坦克是否击中我的坦克 课后练习:让敌人坦克可以最多发射3颗(在面板E),我们的坦克可以发射

    1K20

    Java实现坦克大战3.0

    IO 流-应用到坦克大战 坦克大战0.5版 增加功能 防止敌人坦克重叠运动 记录玩家的总成绩(累积击毁敌方坦克数),存盘退出【io流】 记泉退出游戏时敌人坦克坐标/方向,存盘退出【io流】 玩游戏时,可以选择是开新游戏还是继续上局游戏...//在判断我方子弹是否击中敌人坦克时,就需要把我们的子弹集合中 //所有的子弹,都取出和敌人的所有坦克,进行判断 //老韩给的部分代码.....//什么时候判断 我方的子弹是否击中敌人坦克 ?...//在判断我方子弹是否击中敌人坦克时,就需要把我们的子弹集合中 //所有的子弹,都取出和敌人的所有坦克,进行判断 //老韩给的部分代码.....//什么时候判断 我方的子弹是否击中敌人坦克 ?

    1.6K70

    【Python的魅力】:利用Pygame实现游戏坦克大战——含完整源码

    用户可以通过控制我方的坦克来摧毁敌方的坦克保护自己的“家”,把所有的敌方坦克消灭完达到胜利。敌方的坦克在初始的时候是默认 5 个的(这可以自己设置),当然,如果我方坦克被敌方坦克的子弹打中,游戏结束。...通过加载一张图片来表示游戏中的坦克,此坦克代表我方坦克,完善坦克类。...坦克不能穿墙 如果坦克与墙壁碰撞,则坦克不能继续移动,需要修改坦克的坐标为移动之前的。...同理如果敌方坦克碰撞到 我方坦克也不能继续移动。 在我方坦克类中新增我方坦克与敌方坦克碰撞的方法。...在敌方坦克类中,新增敌方坦克碰撞我方坦克的方法。敌方坦克添加到窗口时候,调用是否与我方坦克碰撞。

    80110

    手把手教你用Python实现“坦克大战”,(附详细代码!)

    小时候玩的“坦克大战”,你还记得吗? 今天,我们使用Python以及强大的第三方库来实现一个简单的坦克大战游戏。...环境依赖 python3.7 pygame1.9.6 urllib 内置库,如random、sys、time、os等 pygame介绍 Pygame被设计用来写游戏的python模块集合,基于SDL库开发...使用python可以导入pygame来开发具有全部特性的游戏和多媒体软件,Pygame是极度轻便的并且可以运行在几乎所有的平台和操作系统上。 1....self.rect.left < SCREEN_WIDTH: 44 self.rect.left += self.speed 45 return 46 self.live = False 47 48 # 我方坦克子弹击中对方坦克...self.display.set_mode([SCREEN_WIDTH, SCREEN_HEIGHT], pygame.RESIZABLE, 32) 14 self.display.set_caption( 坦克世界

    2.6K00

    手把手教你用Python实现“坦克大战”,附详细代码!

    满满的回忆 今天,我们使用Python以及强大的第三方库来实现一个简单的坦克大战游戏。【文中代码点击阅读原文下载,可直接运行】 ?...整体效果 环境依赖 python3.7 pygame1.9.6 urllib 内置库,如random、sys、time、os等 pygame介绍 Pygame被设计用来写游戏的python模块集合,基于...使用python可以导入pygame来开发具有全部特性的游戏和多媒体软件,Pygame是极度轻便的并且可以运行在几乎所有的平台和操作系统上。 1....enemy.load_image = enemy.img31 62 load_music( hit ) 63 64 # 对方坦克子弹击中我方坦克...self.display.set_mode([SCREEN_WIDTH, SCREEN_HEIGHT], pygame.RESIZABLE, 32) 14 self.display.set_caption( 坦克世界

    5.3K70
    领券