boltСпособности

Способности — это стандартный способ реализации действий игрока с помощью:

  • Единого интерфейса кнопок, который хорошо работает на мобильных устройствах и ПК.

  • Перезарядками

  • Необязательного прицеливания (тап/перетаскивание на мобильных устройствах, прицеливание мышью на ПК)

Способности — это для каждого игрока отдельно. Когда игрок присоединяется, 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 чтобы это одинаково работало и на ПК, и на мобильных устройствах.

Способности с прицеливанием (перетаскивание для прицеливания на мобильных устройствах)

Если вам нужно поведение «всегда с прицеливанием» (прицеливание мышью + клик для выстрела на ПК, нажатие-перетаскивание-отпускание на мобильных устройствах), используйте Ability_Utilities.full_update_aimed_ability:

Если вам нужно поведение «клик для входа в режим прицеливания» (на ПК режим прицеливания переключается, правый клик отменяет), используйте Ability_Utilities.full_update_targeted_aimed_ability:

Глобальные ограничения на способности в игре (необязательно)

Реализуйте ao_can_use_ability в вашем Player class, чтобы задать глобальные правила (мертвые игроки не могут использовать способности, отключено во время катсцен и т. д.).

Лучшие практики

  • Всегда рисуйте кнопки в ao_late_update и проверяйте с помощью is_local_or_server()

  • Устанавливайте current_cooldown при активации (иначе это можно будет спамить)

  • Используйте Ability_Utilities вспомогательные функции для удержания/прицеливания, чтобы мобильные устройства и ПК вели себя одинаково

  • Помещайте глобальные правила в Player.ao_can_use_ability, а не дублируйте их для каждой способности

Последнее обновление