当前位置: 首页 > news >正文

Python 植物大战僵尸游戏【含Python源码 MX_012期】

简介:

"植物大战僵尸"(Plants vs. Zombies)是一款由PopCap Games开发的流行塔防游戏,最初于2009年发布。游戏的概念是在僵尸入侵的情境下,玩家通过种植不同种类的植物来保护他们的房屋免受僵尸的侵袭。在游戏中,玩家需要通过收集阳光资源来种植植物,这些植物各有不同的特点和技能,比如射击、炸弹、冰冻等,以应对不同类型的僵尸。游戏通常分为多个关卡,每个关卡都有不同的地图和僵尸类型,玩家需要在每个关卡中选择合适的植物来应对不同的挑战。

界面图:

部分代码:

#5 向日葵类
class Sunflower(Plant):def __init__(self,x,y):super(Sunflower, self).__init__()self.image = pygame.image.load('imgs/sunflower.png')self.rect = self.image.get_rect()self.rect.x = xself.rect.y = yself.price = 50self.hp = 100#5 时间计数器self.time_count = 0#5 新增功能:生成阳光def produce_money(self):self.time_count += 1if self.time_count == 25:MainGame.money += 5self.time_count = 0#5 向日葵加入到窗口中def display_sunflower(self):MainGame.window.blit(self.image,self.rect)
#6 豌豆射手类
class PeaShooter(Plant):def __init__(self,x,y):super(PeaShooter, self).__init__()# self.image 为一个 surfaceself.image = pygame.image.load('imgs/peashooter.png')self.rect = self.image.get_rect()self.rect.x = xself.rect.y = yself.price = 50self.hp = 200#6 发射计数器self.shot_count = 0#6 增加射击方法def shot(self):#6 记录是否应该射击should_fire = Falsefor zombie in MainGame.zombie_list:if zombie.rect.y == self.rect.y and zombie.rect.x < 800 and zombie.rect.x > self.rect.x:should_fire = True#6 如果活着if self.live and should_fire:self.shot_count += 1#6 计数器到25发射一次if self.shot_count == 25:#6 基于当前豌豆射手的位置,创建子弹peabullet = PeaBullet(self)#6 将子弹存储到子弹列表中MainGame.peabullet_list.append(peabullet)self.shot_count = 0

完整代码:Python 植物大战僵尸游戏 

http://www.lryc.cn/news/372875.html

相关文章:

  • 搜索文档的好助手
  • 如何计算 GPT 的 Tokens 数量?
  • 在远程服务器上安装虚拟环境
  • 《站在2024年的十字路口:计算机专业是否仍是高考生的明智之选?》
  • 从零手写实现 nginx-23-nginx 对于 cookie 的操作
  • Python语言例题集(015)
  • Halcon C++ XLD 数据写入图片
  • 一文入门vim
  • 植物ATAC-seq文献集锦(三)——果实发育篇
  • 在自己的电脑上搭建我的世界Java版服务器
  • 1.PyQt6库和工具库QTDesigner安装
  • Hbase搭建教程
  • 利用three-csg-ts对做物体交互式挖洞
  • 腾讯云对象存储不绑定自定义备案域名不给下载应该如何处理?
  • C 语言实例 - 输出数组
  • 回溯算法练习题(2024/6/10)
  • 机器学习--线性模型和非线性模型的区别?哪些模型是线性模型,哪些模型是非线性模型?
  • [linux] Qwen2Tokenizer报错 transformers版本问题
  • 算法刷题笔记 单链表(C++实现)
  • Oracle 排查慢SQL
  • java技术专家面试指南80问【java学习+面试宝典】(七)
  • 4机器学习期末复习
  • chatgpt: int t[] int *t 区别
  • 网络安全技术实验六 入侵检测技术实践
  • SpringBoot中获取当前请求的request和response
  • Neo4j 桌面版打不开踩坑贴
  • [数据集][目标检测]中国象棋检测数据集VOC+YOLO格式300张12类别
  • 全方位·多层次·智能化,漫途水库大坝安全监测方案
  • windows安装SQLyog
  • jEasyUI 转换 HTML 表格为数据网格