bolt技能

能力是实现玩家动作的标准方式:

  • 一个在移动端和 PC 上都能良好工作的统一按钮 UI。

  • 冷却时间

  • 可选瞄准(移动端轻触/拖动,PC 上鼠标瞄准)

能力是 按每个玩家。当玩家加入时,All Out 会为每种能力类型创建一个实例,并将其存储在 player.abilities.

快速开始(绘制能力按钮)

Player.ao_late_update中绘制能力按钮,位于 is_local_or_server():

Player :: class : Player_Base {
    ao_late_update :: method(dt: float) {
        if this->is_local_or_server() {
            draw_ability_button(this, Shoot_Ability, 0);  // 大号主按钮
            draw_ability_button(this, Dodge_Roll, 1);     // 小按钮
        }
    }
}
circle-info

按钮索引映射到固定的屏幕位置。索引 0 是大型主按钮;索引 1-5 是围绕它的小按钮。

能力 API 参考

创建一个能力(基础点击)

持续型能力(按住时生效)

对于按住时生效的能力(冲刺、护盾、光束),使用 Ability_Utilities.update_holding_ability 这样在 PC 和移动端都能正常工作。

瞄准型能力(在移动端拖动以瞄准)

如果你想要“始终瞄准”的行为(PC 上鼠标瞄准 + 点击发射,移动端按下-拖动-松开),使用 Ability_Utilities.full_update_aimed_ability:

如果你想要“点击进入瞄准模式”(PC 切换到瞄准模式;右键取消),使用 Ability_Utilities.full_update_targeted_aimed_ability:

全局能力限制(可选)

实现 ao_can_use_ability 在你的 Player class 上,以强制执行全局规则(死亡玩家不能使用能力、过场动画期间禁用等)。

最佳实践

  • 始终在 ao_late_update 中绘制按钮,并配合 is_local_or_server()

  • 设置 current_cooldown 在激活时(否则会被连续刷用)

  • 使用 Ability_Utilities 用于按住/瞄准的辅助函数,让移动端和 PC 的表现保持一致

  • 将全局规则放在 Player.ao_can_use_ability,不要在每个能力中重复实现

最后更新于