49 Создаём горячие клавиши в Renpy
Ранее мы создали несколько экранов с различными интерфейсами, которые открываются при клике на соответствующую кнопку на экране. Мы также можем продублировать открытие этих экранов с помощью кнопок на клавиатуре. Иногда это удобнее, чем тянуться курсором к определённой области.
В главном экране интерфейса (screen mousearea_scr) для этого необходимо прописать ключ с названием кнопки и действие, которое должно произойти после её нажатия:
После action достаточно скопировать код, который прописан в соответствующей кнопке на экране screen:
Все доступные ключи можно посмотреть в документации движка
Обратите внимание, что в движке уже есть некоторые горячие клавиши. Например, на "s" можно сделать скриншот, на "h" - скрыть интерфейс, на "d" вызвать режим отладки. Поэтому, прежде чем "биндить" определённую клавишу, нажмите её и убедитесь, что к ней ничего не привязано. Так как это может вызвать неудобство для игрока, если он привык на "s" делать скриншот, а вы измените действие на что-то другое.
На нажатие клавиш также влияет выбранная раскладка клавиатуры и кнопка CapsLock. Если вы указали английскую клавишу "p", а у игрока включена русская раскладка, то нажав "з" ничего не произойдёт. Также если у пользователя включён CapsLock - все символы работают в верхнем регистре. Нажатие английской клавиши "p" также не вызовет действия. Поэтому необходимо прописать все эти кнопки-ключи в коде:
Стоит иметь в виду, что если вы планируете переводить на китайский, арабский и другие языки, которые имеют отличающиеся символы, это тоже следует учесть.
Если у вас нет кнопок на экране, и весь интерфейс можно вызвать только с помощью клавиатуры, то это будет недоступно в мобильной версии. Что тоже стоит учитывать.
***
Выше описанная механика только открывает указанный экран. Чтобы закрыть экран повторным нажатием той же кнопки, нужно в каждом экране прописать аналогичные команды:
То есть, в action мы дублируем действия, прописанные в кнопке закрытия
***
Код из урока:
rar
scripts_49.rar5.06 Kb
***
Предыдущий урок:
Следующий урок:
In bundle
renpy
разработка игр
визуальная новелла
программирование
туториалы ренпай
гайды ренпи