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 = x
        self.rect.y = y
        self.price = 50
        self.hp = 100
        #5 时间计数器
        self.time_count = 0

    #5 新增功能:生成阳光
    def produce_money(self):
        self.time_count += 1
        if self.time_count == 25:
            MainGame.money += 5
            self.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 为一个 surface
        self.image = pygame.image.load('imgs/peashooter.png')
        self.rect = self.image.get_rect()
        self.rect.x = x
        self.rect.y = y
        self.price = 50
        self.hp = 200
        #6 发射计数器
        self.shot_count = 0

    #6 增加射击方法
    def shot(self):
        #6 记录是否应该射击
        should_fire = False
        for 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 植物大战僵尸游戏 

相关推荐

  1. Python实现植物大战僵尸

    2024-06-15 14:40:06       14 阅读
  2. Python实现 植物大战僵尸

    2024-06-15 14:40:06       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-15 14:40:06       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-15 14:40:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-15 14:40:06       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-15 14:40:06       20 阅读

热门阅读

  1. 在远程服务器上安装虚拟环境

    2024-06-15 14:40:06       7 阅读
  2. PostgreSQL的视图pg_rules

    2024-06-15 14:40:06       7 阅读
  3. Python语言例题集(015)

    2024-06-15 14:40:06       8 阅读
  4. Qt/C++中的异步编程

    2024-06-15 14:40:06       9 阅读
  5. 鸿蒙 如何将base64的图片保存到相册

    2024-06-15 14:40:06       8 阅读
  6. blender

    blender

    2024-06-15 14:40:06      5 阅读
  7. 难or易?c++

    2024-06-15 14:40:06       7 阅读
  8. web前端黑马下载:探索学习资源的海洋

    2024-06-15 14:40:06       7 阅读