# PVZ_selfmade **Repository Path**: seatonwu/PVZ_selfmade ## Basic Information - **Project Name**: PVZ_selfmade - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-30 - **Last Updated**: 2025-12-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [pvz_readme.md](https://github.com/user-attachments/files/24312286/pvz_readme.md) # 植物大战僵尸贴图版 一个使用 Python 和 Pygame 开发的植物大战僵尸游戏,包含完整的游戏逻辑、关卡编辑器和商店系统。 ## 🎮 游戏特性 ### 核心功能 - **完整的游戏玩法**:种植植物抵御僵尸入侵 - **多样化的植物**:向日葵、射手、坚果墙、樱桃炸弹、猫尾草等 - **不同类型僵尸**:普通僵尸、巨型僵尸,支持装甲和快速变体 - **波次系统**:渐进式难度增加,包含大波僵尸攻击 - **存档系统**:自动保存游戏进度,支持断点续玩 ### 高级功能 - **关卡配置编辑器**:可视化编辑关卡参数和僵尸设置 - **商店系统**:购买额外的植物卡槽和道具 - **小推车防御**:最后防线的小推车系统 - **特性管理**:支持关卡特殊特性和规则 - **热重载配置**:开发过程中可实时更新关卡配置 - **性能优化**:动态调整视觉效果以保持流畅运行 ## 🚀 快速开始 ### 环境要求 - Python 3.7+ - Pygame 2.0+ ### 安装依赖 ```bash pip install pygame ``` ### 运行游戏 ```bash python main.py ``` ### 使用关卡编辑器 ```bash python config_editor.py ``` ## 🎯 游戏玩法 1. **种植向日葵**:收集阳光作为资源 2. **部署防御植物**:在僵尸路径上放置攻击型植物 3. **抵御波次攻击**:完成指定波次的僵尸攻击 4. **策略搭配**:合理搭配不同类型的植物 5. **使用道具**:铲子移除植物,小推车最后防线 ### 植物类型 - **向日葵**:产生阳光资源 - **豌豆射手**:发射豌豆攻击僵尸 - **坚果墙**:高血量防御植物 - **樱桃炸弹**:范围爆炸攻击 - **西瓜投手**:高伤害投射攻击 - **猫尾草**:全地图追踪攻击 - **蒲公英**:发射追踪种子 - **黄瓜**:全屏冰冻效果 ### 操作说明 - **鼠标点击**:选择植物卡牌和种植位置 - **F11**:切换全屏模式 - **ESC**:暂停游戏 - **空格键**:快速继续 - **R**:手动重载配置(开发模式) ## 📁 项目结构 ``` plant-vs-zombies/ ├── main.py # 主程序入口 ├── config_editor.py # 关卡配置编辑器 ├── performance.py # 性能监控模块 ├── utils.py # 通用工具函数 ├── database/ # 数据存储模块 │ ├── __init__.py │ ├── gamedatabase.py # 游戏数据库 │ └── savemanager.py # 存档管理 ├── animation/ # 动画系统 │ ├── __init__.py │ ├── manager.py # 动画管理器 │ ├── effects.py # 特效动画 │ ├── menu.py # 菜单动画 │ ├── plant_flying.py # 植物飞行动画 │ ├── trophy.py # 奖杯动画 │ └── constants.py # 动画常量 ├── plants/ # 植物系统 │ ├── __init__.py │ ├── base_plant.py # 植物基类 │ ├── cattail.py # 猫尾草 │ └── ... # 其他植物类 ├── zombies/ # 僵尸系统 │ ├── __init__.py │ ├── base_zombie.py # 僵尸基类 │ ├── normal_zombie.py # 普通僵尸 │ ├── giant_zombie.py # 巨型僵尸 │ ├── effects.py # 僵尸特效 │ └── zombie_factory.py # 僵尸工厂 ├── rsc_mng/ # 资源管理 │ ├── __init__.py │ ├── resource_loader.py # 资源加载器 │ ├── audiomanager.py # 音频管理 │ ├── sounds/ # 音效文件 │ └── images/ # 图片资源 ├── ui/ # 用户界面 │ ├── __init__.py │ ├── renderer_manager.py # 渲染管理器 │ ├── plantselectionmanager.py # 植物选择界面 │ └── ui_manager.py # UI管理器 └── shop/ # 商店系统 ├── __init__.py ├── shop_manager.py # 商店管理器 └── cart_manager.py # 小推车管理 ``` ## 🛠️ 开发指南 ### 关卡配置编辑器 关卡配置编辑器提供可视化的关卡编辑功能: - 调整波次数量和初始阳光 - 设置僵尸装甲概率和速度倍率 - 预览JSON配置 - 支持关卡复制和删除 ### 特性管理系统 游戏支持灵活的特性管理,可为不同关卡配置特殊规则: - 向日葵种植限制 - 卡牌冷却时间 - 随机阳光掉落 - 波次模式无阳光掉落 ### 热重载功能 开发模式下支持配置热重载: - 实时更新关卡配置 - 无需重启游戏即可测试更改 - 配置更新提示 ## 🎨 自定义内容 ### 添加新植物 1. 在 `plants/` 目录创建新的植物类 2. 继承 `BasePlant` 或相应的子类 3. 实现植物特有的逻辑和动画 4. 在资源管理器中添加对应图片 ### 添加新僵尸 1. 在 `zombies/` 目录创建新的僵尸类 2. 继承 `BaseZombie` 类 3. 在 `zombie_factory.py` 中注册新僵尸类型 4. 添加对应的图片和音效资源 ### 关卡设计 使用配置编辑器或直接编辑 `database/levels.json`: - 设置关卡基础参数 - 配置僵尸生成规则 - 启用特殊特性 ## 🔧 配置文件 ### 关卡配置 (database/levels.json) ```json { "levels": { "1": { "name": "第一关", "max_waves": 3, "initial_sun": 50, "zombie_armor_prob": 0.1, "fast_zombie_multiplier": 2.0 } } } ``` ### 商店配置 - 额外植物卡槽 - 铲子道具 - 小推车购买 ## 🐛 已知问题 - 全屏模式下可能存在缩放问题 - 某些情况下音效可能不同步 - 高分辨率显示器上UI元素可能过小 ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! ### 开发环境搭建 1. Fork 本仓库 2. 创建功能分支 3. 进行开发和测试 4. 提交 Pull Request ### 代码规范 - 使用中文注释 - 遵循 PEP 8 代码风格 - 为新功能添加适当的文档 ## 📜 许可证 本项目仅供学习和研究使用。 ## 🙏 致谢 - 感谢 PopCap Games 的经典游戏《植物大战僵尸》 - 感谢 Pygame 社区提供的优秀框架 - 感谢所有贡献者的努力 --- **注意**:本项目是对经典游戏的重制,仅用于学习目的。请支持正版游戏!