Анатолий Адонин

Анатолий Адонин 

Разработка на Python / Renpy

399subscribers

111posts

Showcase and bundles

16
A bundle is a collection, compilation, playlist, or catalog of posts that saves you from searching through the blog and lets you buy the entire content series in a single click.

58 Кнопки выбора в Renpy (экран Choice)

За отображение кнопок выбора отвечает экран choice. Его также можно найти в файле screen.rpy. Он выводит кнопки с доступными вариантами действий и определяет, как они будут выглядеть на экране.
Когда в сценарии используется конструкция menu, Renpy автоматически передаёт варианты в экран choice, который с помощью цикла создаёт соответствующие кнопки.
По умолчанию внешний вид menu определяется несколькими элементами:
1. Изображения кнопок в папке gui/button. Вы можете заменить их на свои картинки с таким же названием.
choice_idle_background.png - отображает обычное состояние кнопки
choice_hover_background.png - состояние при наведении курсора
2. В файле gui.rpy можно настроить размеры и параметры кнопок.
define gui.choice_button_width = 800 - Ширина кнопки
define gui.choice_button_height = None - Высота кнопки, определяется автоматически.
Например, если варианты ответов слишком длинные, кнопка расширится по высоте.
При необходимости вы можете указать фиксированную высоту
define gui.choice_button_height = 100
define gui.choice_button_tile = False - Определяет способ изменения размера фоновой картинки. При значении False изображение растягивается, как на скрине выше. При значении True картинка повторяется на поверхности кнопки подобно плитке.
define gui.choice_button_borders = Borders(150, 8, 150, 8) - Устанавливает отступы текста от краёв кнопки (Левый, Верхний, Правый, Нижний).
define gui.choice_button_text_font = gui.text_font - Устанавливает шрифт для текста из переменной text_font в файле gui.rpy. Вы можете указать свой шрифт, например:
define gui.choice_button_text_font = "fonts/KOMIKAX.ttf"
define gui.choice_button_text_size = gui.text_size - Устанавливает размер текста в кнопке выбора из переменной text_size, которая находится в файле gui.rpy. Можно указать свой размер, например:
define gui.choice_button_text_size = 30
define gui.choice_button_text_xalign = 0.5 - Устанавливает расположение текста по центру кнопки (по оси Х). 0.0 - Текст будет прижиматься к левому краю кнопки. 1.0 - к правому краю. Но не стоит забывать, что установленные отступы будут сохраняться Borders(150, 8, 150, 8).
define gui.choice_button_text_idle_color = '#888888' - Устанавливает цвет текста, когда курсор не наведён.
 
define gui.choice_button_text_hover_color = "#ffffff" - Устанавливает цвет текста, когда курсор наведён на этот вариант ответа.
 
define gui.choice_button_text_insensitive_color = '#8888887f' - Устанавливает цвет текста для кнопок, которые на текущий момент не кликабельны. Подробнее об этом было в 23-м уроке.
3. В файле screens.rpy  находится экран с кнопками, в котором можно установить расположение кнопок на экране.
То есть, по сути мы просто перемещаем бокс в нужное место. Также вертикальный бокс можно заменить на горизонтальный:
***
Ранее я предлагал простой вариант создания нескольких видов menu в одной игре, путём дублирования стандартного кода. В дубликатах необходимо установить новую позицию для кнопок, настроить их параматры и внешний вид.
Пример работы разных менюшек в одной игре:
***
Изображения из урока:
rar
btn_menu.rar10.15 Kb
***
Предыдущий урок:
57 Экран быстрого меню (quick menu) в Renpy
Следующий урок:
59 Покадровая анимация в Renpy
Все уроки здесь
Subscription levels3

Личный состав

$0.93 per month
Участник экспедиции

Колонист

$2.47 per month
С комфортом до Бетельгейзе

Штурман

$5 per month
Штурмуем геймдев - Пошаговые уроки с нуля до профи
Учимся создавать игры на Renpy
Программируем на Python
Go up