# 游戏状态管理系统设置指南 本指南将帮助你在Cocos Creator中正确设置游戏状态管理系统,实现血量监控和胜利失败UI显示功能。 ## 📋 前置条件 确保你的场景中已经有以下节点结构: ``` Canvas/ ├── GameLevelUI/ │ ├── HeartNode/ │ │ └── HeartLabeld (Label组件,显示血量) │ ├── EnemyController (挂载EnemyController脚本) │ └── GameManager (挂载增强版GameManager脚本) ├── GameSuccess (游戏成功UI,初始设为不激活) └── GameDefeat (游戏失败UI,初始设为不激活) ``` ## 🔧 设置步骤 ### 1. 配置增强版GameManager组件 在 `Canvas/GameLevelUI/GameManager` 节点的Inspector面板中设置以下属性: **原GameManager属性:** - **Ball Controller**: 拖入BallController节点 - **Block Selection UI**: 拖入BlockSelectionUI节点 - **Game Area**: 拖入GameArea节点 - **Enemy Manager**: 拖入EnemyController节点 **游戏状态管理属性:** - **Heart Label Node**: 拖入 `Canvas/GameLevelUI/HeartNode/HeartLabeld` 节点 - **Game Success UI**: 拖入 `Canvas/GameSuccess` 节点 - **Game Defeat UI**: 拖入 `Canvas/GameDefeat` 节点 **游戏配置属性:** - **Wall Health**: 设置墙体初始血量(如1200) - **Initial Health**: 设置初始血量(如100) - **Check Interval**: 设置检查间隔(建议1.0秒) ### 2. 设置成功失败UI按钮 #### GameSuccess UI 按钮结构 ``` Canvas/GameSuccess/ ├── NextLevelBtn (Button组件) ├── RestartBtn (Button组件) ├── MainMenuBtn (Button组件) └── ShopBtn (Button组件) ``` #### GameDefeat UI 按钮结构 ``` Canvas/GameDefeat/ ├── RestartBtn (Button组件) ├── MainMenuBtn (Button组件) ├── ShopBtn (Button组件) └── ReviveBtn (Button组件) ``` **注意**: 按钮节点名称必须严格按照上述命名,脚本会根据名称自动查找和绑定事件。 ### 3. 初始化其他管理器 确保场景中有以下管理器节点: 1. **LevelManager**: 在某个持久节点上挂载 `LevelManager` 脚本 2. **ShopManager**: 在某个持久节点上挂载 `ShopManager` 脚本 3. **ConfigManager**: 在某个持久节点上挂载 `ConfigManager` 脚本 ## 🎮 工作流程 ### 血量监控流程 1. `GameManager` 每秒检查 `HeartLabeld` 的文本内容 2. 从文本中提取数字作为当前血量 3. 当血量降为0时,自动触发游戏失败 ### 敌人检测流程 1. `GameManager` 通过 `EnemyController` 获取当前敌人数量 2. 当敌人数量为0时,自动触发游戏成功 ### UI交互流程 1. 游戏结束时显示对应的成功/失败UI 2. `GameManager` 处理所有按钮点击事件 3. 按钮功能包括:下一关、重新开始、返回主菜单、商店、复活等 ## 🔍 调试功能 ### GameManager调试方法 ```typescript // 在控制台或其他脚本中调用 const gameManager = find('Canvas/GameLevelUI/GameManager').getComponent('GameManager'); // 强制触发游戏成功 gameManager.forceGameSuccess(); // 强制触发游戏失败 gameManager.forceGameDefeat(); // 手动设置血量 gameManager.setHealth(50); // 造成伤害 gameManager.takeDamage(20); ``` ## ⚠️ 注意事项 1. **节点路径**: 确保所有节点路径与代码中的路径完全一致 2. **组件依赖**: GameManager依赖EnemyController,确保EnemyController正常工作 3. **UI初始状态**: GameSuccess和GameDefeat节点初始应设为不激活状态 4. **按钮命名**: UI按钮的节点名称必须与代码中的查找名称一致 5. **管理器实例**: LevelManager和ShopManager需要正确初始化为单例 6. **脚本位置**: 增强版GameManager脚本位于 `LevelSystem/GameManager.ts` ## 🎯 扩展功能 你可以根据需要扩展以下功能: 1. **音效支持**: 在胜利失败时播放音效 2. **动画效果**: 添加UI显示动画 3. **得分计算**: 实现更复杂的得分系统 4. **星级评定**: 根据表现给出星级评价 5. **成就系统**: 集成成就解锁功能 ## 🐛 常见问题 **Q: 血量检测不工作?** A: 检查HeartLabeld节点路径和Label组件是否正确设置 **Q: 按钮点击无响应?** A: 检查按钮节点命名是否正确,Button组件是否添加 **Q: 敌人检测不准确?** A: 确保EnemyController的getCurrentEnemyCount方法正常工作 **Q: 管理器获取失败?** A: 检查LevelManager和ShopManager是否正确初始化为单例 **Q: 找不到GameManager脚本?** A: 确保使用的是 `LevelSystem/GameManager.ts` 中的增强版GameManager