python版植物大战僵尸主体框架
本项目是一个基于 Pygame 开发的植物大战僵尸游戏,包含完整的游戏循环、植物系统、僵尸系统、战斗系统和关卡系统。
文件结构
PlainText
zdj/├── 主程序.py # 核心游戏逻辑与主循环├── 物品.py # 动画加载与素材管理├── 菜单与界面.py # UI界面组件与背景管理├── music.py # 音效与背景音乐管理├── 关卡.txt # 关卡进度存储└── simhei.ttf # 字体文件
模块详细介绍
1. 主程序.py - 核心游戏逻辑
功能定位:游戏主循环、状态管理、战斗系统、交互逻辑
核心模块:
子系统 功能说明 关键变量/函数
游戏状态管理 控制菜单/游戏切换、胜利/失败判定 game, game_over, victory_time
关卡系统 最多50关,难度递进,动态网格 i(关卡数),rend_and_remove_file()
植物系统 8种植物的种植、攻击、生命周期 plant_list, plant_type, zwzl
僵尸系统 3种僵尸的生成、移动、攻击、死亡 js_list, js_move_state, jssw()
战斗系统 子弹发射、碰撞检测、伤害计算 wdzd_list, bz_list, wdfs(), bzfs()
资源系统 阳光收集与消耗,经济平衡 ygs, yg_list, djyg()
事件处理 鼠标点击、键盘输入、游戏退出 事件循环,键盘ESC返回菜单
植物类型对照表:
ID 植物名称 阳光消耗 解锁关卡 功能
1 向日葵 50 ≥2 生产阳光(每10-20秒)
2 豌豆射手 100 基础 单发子弹攻击
3 双发射手 200 ≥5 双发子弹攻击
5 四发射手 425 ≥7 四发子弹攻击
6 坚果 50 ≥6 高血量防御(300HP)
7 小蘑菇 0 ≥11(夜间) 发射爆炸攻击
8 阳光菇 25 ≥12(夜间) 生产少量阳光,60秒后成长为大阳光菇
9 大阳光菇 - 成长后 生产更多阳光(25→15)
僵尸类型对照表:
类型 生命值 说明
js1 10 普通僵尸
lzjs 30 路障僵尸,被打掉路障后变为普通僵尸
ttjs 40 铁桶僵尸,被打掉铁桶后变为普通僵尸
2. 物品.py - 动画与素材管理
功能定位:GIF动画加载、精灵素材管理、透明背景处理
核心类:
PlantAnimation(第6行):通用动画类
加载GIF文件并解析为逐帧图像
支持白色背景抠像(阈值>240)
自动帧切换(默认10FPS)
提供update()和get_surface()接口
素材分类:
类别 函数名 说明
植物动画 zw_wdss(), zw_xrk(), zw_
游戏/电竞