maze_python/md/BOSS_FIGHT_README.md
2025-06-30 17:43:54 +08:00

119 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Boss战斗系统实现说明
## 功能概述
在路径一步步显示过程中当遇到Boss时会弹出一个详细的Boss战斗界面展示
1. **Boss信息**: 显示所有Boss的血量和当前状态
2. **技能信息**: 显示玩家的所有技能(伤害、冷却时间、当前冷却状态)
3. **战斗策略**: 自动计算并显示每个Boss的最优击败策略
4. **实时战斗**: 可以一步步观看战斗过程,包括技能使用和冷却
## 实现的文件和功能
### 1. boss_fight_ui.py - Boss战斗界面
- **BossFightUI类**: 完整的Boss战斗可视化界面
- **功能特性**:
- 显示所有Boss血量和状态
- 显示玩家技能信息和冷却状态
- 实时战斗模拟(手动/自动模式)
- 战斗序列可视化
- 键盘和鼠标控制
### 2. 修改的主要文件
#### maze.py
- 添加了`boss_data`和`player_skills`属性
- 修改`next_path_step()`方法检测Boss遭遇并返回详细信息
- 修改`load_game()`方法支持加载Boss数据和玩家技能
#### simple_save_manager.py
- 修改`load_maze_from_json()`方法支持从JSON文件加载Boss数据(`B`)和玩家技能(`PlayerSkills`)
#### main.py
- 集成Boss战斗界面
- 修改事件处理逻辑优先处理Boss战斗界面事件
- 修改路径控制逻辑遇到Boss时显示战斗界面
- 添加Boss战斗界面的绘制
## Boss数据格式
### JSON存档文件格式 (如 maze_15_15_2.json)
```json
{
"maze": [...],
"B": [11, 13, 8, 17], // Boss血量序列
"PlayerSkills": [
[6, 2], // 技能0: 伤害6, 冷却2
[2, 0], // 技能1: 伤害2, 冷却0
[4, 1] // 技能2: 伤害4, 冷却1
]
}
```
## 使用方式
### 游戏中操作
1. **生成迷宫**: 点击"生成"按钮
2. **加载存档**: 点击"读档"按钮自动加载maze_15_15_2.json
3. **路径显示**:
- 点击"下一步"或按空格键逐步显示路径
- 点击"自动播放"或按A键自动显示路径
4. **遇到Boss**: 自动弹出Boss战斗界面
### Boss战斗界面操作
- **自动播放**: 点击"自动"按钮或按A键
- **手动步进**: 点击"下一步"按钮或按空格键
- **重置战斗**: 点击"重置"按钮或按R键
- **关闭界面**: 点击X按钮或按ESC键
## 战斗策略算法
使用分支限界法(A*算法)计算最优战斗策略:
- **目标**: 用最少回合数击败所有Boss
- **约束**: 技能冷却时间限制
- **输出**: 每个Boss对应的技能使用序列
### 技能序列说明
- **数字(0,1,2等)**: 表示使用对应索引的技能
- **-1**: 表示等待(所有技能冷却-1但不使用任何技能
## 视觉效果
### Boss战斗界面特性
- **Boss状态**:
- 绿色: 已击败
- 红色: 当前正在战斗
- 灰色: 尚未到达
- **技能状态**:
- 彩色: 技能可用
- 灰色: 技能冷却中(显示剩余冷却时间)
- **战斗进度**:
- 显示当前回合数
- 显示当前Boss剩余血量
- 高亮当前要执行的动作
## 测试功能
### 独立测试
运行`test_boss_ui.py`可以单独测试Boss战斗界面
```bash
python test_boss_ui.py
```
### 完整测试
运行主程序并加载包含Boss数据的存档
```bash
python main.py
# 点击"读档"按钮加载maze_15_15_2.json
# 逐步显示路径直到遇到Boss
```
## 技术特点
1. **模块化设计**: Boss战斗界面独立封装易于维护
2. **事件驱动**: 支持键盘和鼠标操作
3. **实时反馈**: 实时显示战斗状态和进度
4. **可扩展性**: 易于添加新的技能类型和Boss类型
5. **用户友好**: 直观的界面和操作提示