battle_manager 逻辑结构优化
本文最后更新于42 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

BattleManager(战斗管理器)

核心功能 :负责战斗核心逻辑的实现,包括战斗状态管理、行动执行、伤害计算等。

主要属性 :

  • player_characters :玩家角色数组
  • enemy_characters :敌人角色数组
  • turn_queue :回合队列(按速度排序)
  • current_turn_character :当前行动角色
  • is_player_turn :是否为玩家回合(基于状态管理器)

关键方法 :

  • start_battle() :开始战斗
  • player_select_action() :处理玩家选择的行动
  • execute_enemy_ai() :执行敌人AI
  • _execute_attack()/_execute_skill()/_execute_defend() :执行具体行动
  • check_battle_end_condition() :检查战斗结束条件
  • spawn_damage_number() :生成伤害数字
  • get_valid_enemy_targets()/get_valid_ally_targets() :获取有效目标

BattleScene(战斗场景)

核心功能 :负责战斗UI管理、用户交互处理、场景控制。

主要属性 :

  • action_panel :行动面板UI
  • info_label :战斗信息显示
  • skill_select_menu :技能选择菜单
  • target_selection_menu :目标选择菜单
  • player_area/enemy_area :角色区域
  • battle_manager :引用战斗管理器
  • current_selected_skill :当前选中的技能

关键方法 :

  • _ready() :初始化场景和连接信号
  • show_action_ui() :显示/隐藏行动UI
  • _on_skill_selected() :处理技能选择
  • _on_target_selected() :处理目标选择
  • _open_skill_menu() :打开技能菜单
  • _show_action_menu() :显示行动菜单

战斗进行中的交互

玩家行动流程 :

  1. BattleScene 显示行动菜单 → 玩家选择行动
  2. BattleScene 调用 battle_manager.player_select_action() 执行行动
  3. BattleManager 执行具体行动(攻击/技能/防御)
  4. BattleManager 检查战斗结束条件
  5. BattleManager 发出信号通知 BattleScene 更新UI

技能使用流程 :

  1. BattleScene 打开技能菜单 → 玩家选择技能
  2. BattleScene 根据技能目标类型决定是否显示目标选择
  3. 玩家选择目标后,BattleScene 调用 battle_manager.player_select_action(“skill”, target, skill)
  4. BattleManager 执行技能逻辑,计算伤害/治疗
  5. BattleManager 生成伤害数字,发出战斗信息信号

不同战斗阶段的配合

1. 初始化阶段

  • BattleScene :加载场景,连接信号,注册角色到 BattleManager
  • BattleManager :初始化状态管理器,准备战斗数据

2. 战斗进行中

  • 回合开始 :
  • BattleManager 确定当前行动角色,发出 turn_changed 信号
  • BattleScene 响应信号,根据是否为玩家回合显示/隐藏行动UI
  • 玩家行动 :
  • BattleScene 处理用户输入,显示相应菜单
  • 玩家选择后,BattleScene 调用 BattleManager 的方法执行行动
  • 行动执行 :
  • BattleManager 执行具体行动,计算效果,生成视觉反馈
  • BattleManager 发出战斗信息信号,BattleScene 更新信息显示
  • 敌人回合 :
  • BattleManager 执行敌人AI,选择目标和行动
  • BattleScene 仅显示战斗信息,不处理用户输入

3. 战斗结束

  • BattleManager :检查结束条件,发出 battle_ended 信号
  • BattleScene :响应信号,隐藏行动UI,显示战斗结果
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇