鱼C论坛

 找回密码
 立即注册
查看: 71|回复: 2

[作品展示] 植物大战僵尸

[复制链接]
发表于 3 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
相信很多人都玩过植物大战僵尸吧
这次又用Python做了这么个游戏
因为论坛限制,所以这里不提供图片。


import os
import time
import pygame
from pvz.plant.Peashooter import Peashooter
from pvz.plant.SunFlower import SunFlower
from pvz.plant.WallNut import WallNut
from pvz.plant.Sun import Sun
from pvz.plant.Bullet import Bullet
from pvz.zombie.Zombie import Zombie

# 初始化pygame库
pygame.init()
background_size = (820, 560)
screen = pygame.display.set_mode(background_size)
pygame.display.set_caption("植物大战僵尸")

# 加载资源
base_path = os.getcwd()
bg_img_obj = pygame.image.load(os.path.join(base_path, 'images/a3.png')).convert_alpha()
sunFlowerImg = pygame.image.load(os.path.join(base_path, 'images/SunFlower/SunFlower_00.png')).convert_alpha()
peaShooterImg = pygame.image.load(os.path.join(base_path, 'images/Peashooter/Peashooter00.png')).convert_alpha()

# 初始化变量
spriteGroup = pygame.sprite.Group()
bulletGroup = pygame.sprite.Group()
zombieGroup = pygame.sprite.Group()
sun_sprite = pygame.sprite.Group()
clock = pygame.time.Clock()

def main():
                running = True
                while running:
                        clock.tick(20)
                        for event in pygame.event.get():
                                if event.type == pygame.QUIT:
                                        running = False

                        screen.blit(bg_img_obj, (0, 0))
                        spriteGroup.update()
                        spriteGroup.draw(screen)
                        bulletGroup.update()
                        bulletGroup.draw(screen)
                        zombieGroup.update()
                        zombieGroup.draw(screen)
                        sun_sprite.update()
                        sun_sprite.draw(screen)

pygame.display.update()

if __name__ == '__main__':
        main()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 3 天前 | 显示全部楼层
关于您提供的植物大战僵尸Python代码的简要说明

这段代码是一个使用 pygame 编写的简化版“植物大战僵尸”游戏框架。下面是对主要部分的简要解释,帮助鱼油理解:

  • 资源加载:通过 pygame.image.load 加载背景图和植物图片。
  • 精灵组管理:使用 pygame.sprite.Group 管理植物、子弹、僵尸和阳光等对象,方便统一更新和绘制。
  • 主循环:在 main() 函数中,使用 while running 实现游戏主循环,处理事件、更新状态并绘制画面。
  • 帧率控制:通过 clock.tick(20) 控制游戏帧率为每秒20帧。
  • 退出机制:监听 pygame.QUIT 事件来关闭游戏窗口。


建议与注意事项

  • 你已经导入了多个模块(如 PeashooterZombie 等),但在主循环中并未实际创建或添加这些对象到精灵组中,建议补充相关逻辑。
  • 建议将 pygame.display.update() 放入主循环中,否则画面不会实时刷新。
  • 可以添加鼠标点击事件来种植植物,增加游戏互动性。


如果你需要我帮你补充完整的游戏逻辑或某个模块的代码,请告诉我,我可以为你生成对应的
...
代码块。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 3 天前 | 显示全部楼层
图片可以用https://tutu.to/;发出去掉“https://”的链接
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-2 02:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表