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

3.5 KiB
Raw Permalink Blame History

Boss战斗系统实现说明

功能概述

在路径一步步显示过程中当遇到Boss时会弹出一个详细的Boss战斗界面展示

  1. Boss信息: 显示所有Boss的血量和当前状态
  2. 技能信息: 显示玩家的所有技能(伤害、冷却时间、当前冷却状态)
  3. 战斗策略: 自动计算并显示每个Boss的最优击败策略
  4. 实时战斗: 可以一步步观看战斗过程,包括技能使用和冷却

实现的文件和功能

1. boss_fight_ui.py - Boss战斗界面

  • BossFightUI类: 完整的Boss战斗可视化界面
  • 功能特性:
    • 显示所有Boss血量和状态
    • 显示玩家技能信息和冷却状态
    • 实时战斗模拟(手动/自动模式)
    • 战斗序列可视化
    • 键盘和鼠标控制

2. 修改的主要文件

maze.py

  • 添加了boss_dataplayer_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)

{
  "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战斗界面

python test_boss_ui.py

完整测试

运行主程序并加载包含Boss数据的存档

python main.py
# 点击"读档"按钮加载maze_15_15_2.json
# 逐步显示路径直到遇到Boss

技术特点

  1. 模块化设计: Boss战斗界面独立封装易于维护
  2. 事件驱动: 支持键盘和鼠标操作
  3. 实时反馈: 实时显示战斗状态和进度
  4. 可扩展性: 易于添加新的技能类型和Boss类型
  5. 用户友好: 直观的界面和操作提示