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

简介:

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

界面图:

部分代码:

python 复制代码
#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 植物大战僵尸游戏

相关推荐
李匠20248 小时前
C++学习之游戏服务器开发十五QT登录器实现
服务器·c++·学习·游戏
Sui_Network10 小时前
全能 Sui 技术栈,构建 Web3 的未来
人工智能·物联网·游戏·web3·区块链·智能合约
李匠202411 小时前
C++学习之游戏服务器开发十四QT登录器实现
c++·学习·游戏
偶尔贪玩的骑士13 小时前
Visual Studio2022 配置 SDL3及拓展库
c++·游戏·sdl
二狗哈14 小时前
制作一款打飞机游戏18:敌人子弹
游戏
完成大叔18 小时前
Python-27:游戏英雄升级潜力评估
python·游戏
郭逍遥1 天前
[Godot] C#2D平台游戏基础移动和进阶跳跃代码
游戏·游戏引擎·godot
虾球xz2 天前
游戏引擎学习第239天:通过 OpenGL 渲染游戏
c++·学习·游戏·游戏引擎
李匠20242 天前
C++学习之游戏服务器开发⑩ZINX的TCP通道实现
服务器·c++·学习·游戏
二狗哈2 天前
使用最新threejs复刻经典贪吃蛇游戏的3D版,附完整源码
游戏·3d