【Python做游戏】植物大战僵尸-1绘制场景

利用pygame模块开发

项目迭代开发~

github地址:https://github.com/leemamas/pvz

绘制场景

演示视频地址:https://www.bilibili.com/video/BV1be411x7u9/

步骤:

1.初始化pygame

2.设置窗体大小

3.程序标题名称

4.背景图更换

5.图片渲染

6.退出事件

具体实现代码:

import pygame, sys
from plants.peashooter import Peashooter

# 这初始化

pygame.init()

# 窗体大小
screen_size = (1200, 600)
screen = pygame.display.set_mode(screen_size)
# 窗体名称
pygame.display.set_caption('pvz')
# 背景
bg_path = 'images/Background.jpg'
backgroup = pygame.image.load(bg_path).convert()


# 主函数
def main():
    while 1:

        block.tick(30)
        # 绘制背景
        screen.blit(backgroup, (0, 0))
        
        pygame.display.update()

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()



if __name__ == '__main__':
    main()

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是Python实现植物大战僵尸的简化版代码: ```python import random # 植物与僵尸的基类 class Entity: def __init__(self, name, hp, damage): self.name = name self.hp = hp self.damage = damage def attack(self, target): target.hp -= self.damage def is_alive(self): return self.hp > 0 # 植物类 class Plant(Entity): def __init__(self, name, hp, damage, cost): super().__init__(name, hp, damage) self.cost = cost # 僵尸类 class Zombie(Entity): def __init__(self, name, hp, damage, speed): super().__init__(name, hp, damage) self.speed = speed # 植物和僵尸的工厂类 class EntityFactory: @staticmethod def create_plant(plant_type): if plant_type == 'PeaShooter': return Plant('PeaShooter', 100, 20, 50) elif plant_type == 'SunFlower': return Plant('SunFlower', 50, 0, 25) @staticmethod def create_zombie(zombie_type): if zombie_type == 'NormalZombie': return Zombie('NormalZombie', 200, 10, 1) elif zombie_type == 'ConeheadZombie': return Zombie('ConeheadZombie', 300, 20, 1) # 游戏管理类 class GameManager: def __init__(self): self.plants = [] self.zombies = [] def add_plant(self, plant_type): plant = EntityFactory.create_plant(plant_type) if plant.cost <= self.sun: self.sun -= plant.cost self.plants.append(plant) return True else: return False def add_zombie(self, zombie_type): zombie = EntityFactory.create_zombie(zombie_type) self.zombies.append(zombie) def game_loop(self): while True: # 随机生成僵尸 if random.randint(0, 9) < 2: self.add_zombie('NormalZombie') else: self.add_zombie('ConeheadZombie') # 植物攻击僵尸 for plant in self.plants: zombie = random.choice(self.zombies) plant.attack(zombie) if not zombie.is_alive(): self.zombies.remove(zombie) # 僵尸攻击植物 for zombie in self.zombies: plant = random.choice(self.plants) zombie.attack(plant) if not plant.is_alive(): self.plants.remove(plant) # 判断游戏是否结束 if not self.plants: print('Game over! Zombies win!') break elif not self.zombies: print('Game over! Plants win!') break # 游戏入口 if __name__ == '__main__': game = GameManager() game.sun = 100 game.add_plant('PeaShooter') game.add_plant('SunFlower') game.game_loop() ``` 这个游戏的实现还可以更加完善,例如添加更多的植物和僵尸类型、增加关卡等。但是这个简化版的代码已经可以让你了解到如何用Python实现植物大战僵尸游戏逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值