Настройка паузы - TrueCat17/Ren-Engine GitHub Wiki
Список (list
) кнопок меню паузы хранится в pause_screen.items
.
Добавить в конец (низ) кнопку с надписью Exit
(с авто-переводом) и действием exit_from_game()
можно так:
pause_screen.items.append(['Exit', exit_from_game])
Вставить эту же кнопку в место n
(отсчёт начинается с 0
):
pause_screen.items.insert(n, ['Exit', exit_from_game])
О том, как её удалить, и какие тут есть подводные камни, можно прочесть в похожем абзаце про
добавление кнопки в быстрое меню.
Кратко о системе переводов можно почитать там же, как и найти ссылку на полноценную статью об этом.
Кнопки меню паузы используют стиль pause_screen_button
, наследуемый от textbutton
.
Свойство ground
установлено в 'images/gui/menu/pause/btn_ground.png'
, аналогично со свойством hover
.
Посмотреть на создание стиля можно в файле Ren-Engine/rpy/screens/pause.rpy
.
Почитать о стилях подробнее можно здесь
(новичкам лучше прочесть всю статью целиком, иначе один лишь последний абзац не будет понятен).
Иногда (например, в моде главного меню) нужно отключить меню паузы:
pause_screen.disable = True
Также это может использоваться для отключения паузы именно по нажатию клавиши ESCAPE
.
Для того, чтобы всё-таки вызвать паузу по какой-то спец. кнопке,
можно использовать код pause_screen.show(ignore_checks = True)
.
Также для этой цели может быть полезен абзац про игнорирование определённой клавиши в статье Горячие клавиши.
Меню паузы появляется, спускаясь снизу.
Исчезает же оно, сначала "наклоняясь", а потом "уезжая по наклонной".
На данный момент эти эффекты появления и исчезновения нельзя заменить на другие, но их можно настроить.
Наклон до исчезновения (в градусах):
pause_screen.rotate_before_hiding = 15
Время этого наклона (в секундах):
pause_screen.rotate_time = 0.2
Время исчезновения ("съезжания"):
pause_screen.disappearance_time = 0.2
И наконец, время появления ("спускания"):
pause_screen.appearance_time = 0.4
Если этих настроек недостаточно, то на данный момент вам поможет лишь полное переписывание меню паузы, о чём можно прочесть в след. абзаце.
Меню паузы - вещь довольно простая (особенно по сравнению с диалог-боксом или со скрином рпг-локации). Поэтому вы вполне можете захотеть его переписать.
Единственное, о чём тут стоит упомянуть - вам нужно будет переопределить функцию pause_screen.show
:
def my_pause_show_func(ignore_checks = False):
if not ignore_checks and pause_screen.disable: return
if has_screen('pause'): return
# your code
# ...
pause_screen.show = my_pause_show_func
Именно эта функция вызывается для показа паузы, и именно она должна проводить инициализацию (например, запоминать время вызова для дальнейшего расчёта эффектов) и говорить движку отобразить скрин паузы.
Повторное напоминание: посмотреть на реализацию функций и самого скрина паузы можно в файле
Ren-Engine/rpy/screens/pause.rpy
.