Создание информационного экрана (Creating an Information Screen)
Информационный экран – экран, который можно использовать для отображения различной информации, от статистики очков симпатии до раскрытия всего, что вам правда нравится. На данном примере, мы продемонстрируем, как с помощью информационного экрана, показать очки симпатии любовного увлечения двоих персонажей.
В разделе Init[править | править код]
Здесь вам нужно определить свои переменные.
init:
$ bob_points = 0 # переменная для очков симпатии Боба на протяжении всей игры
$ larry_points = 0 # переменная для очков симпатии Ларри на протяжении всей игры
$ bob_max = 10 #переменная должна быть установлена на максимальное количество очков симпатии Боба
$ larry_max = 10#переменная должна быть установлена на максимальное количество очк. симпатии Ларри
$ variable = False # когда значение False, кнопка экрана симпатии не появляется на экране
В Screens.rpy[править | править код]
Вы можете фактически определить этот экран в любом месте кода, но будет проще сгруппировать его с другими экранами.
screen button:
vbox xalign 0.1 yalign 0.1:
textbutton "Показать очки симпатии" action ui.callsinnewcontext("aff_screen_label")
# также можете использовать кнопки с изображением:
imagebutton:
idle "button_idle.png"
hover "button_hover.png"
action ui.callsinnewcontext("aff_screen_label")
Вышеуказанный код кнопки, открывающую статистику/экран очков симпатии при нажатии. Не забудьте изменить имена файлов изображений и координаты xalign/yalign для своего собственного кода. Если вы не хотите, чтобы кнопка отображалась всё время, можно сделать что-то подобное:
screen button:
if variable:
vbox xalign 0.1 yalign 0.1:
textbutton "Показать очки симпатии" action ui.callsinnewcontext("aff_screen_label")
# также можете использовать кнопки с изображением:
imagebutton:
idle "button_idle.png"
hover "button_hover.png"
action ui.callsinnewcontext("aff_screen_label")
Этот делает так, что кнопка отображается только в том случае, если variable принимает значение True. Что касается фактического содержания статистики/экран очков симпатии, то:
screen aff_screen:
frame:
has vbox
text "Боб: [bob_points] points"
text "Ларри: [larry_points] points"
textbutton "Возврат" action Return()
label aff_screen_label:
call screen aff_screen
return
Будет выглядеть как "Боб: ### очков" и "Ларри: ### очков", причем ### является любым числом переменных, установленных для этих очков в данный момент. Если вы хотите использовать бары вместо текста (удобно для статистики/очков симпатии), можете использовать бары, как тут:
screen aff_screen:
frame:
has vbox
hbox:
label "Боб: " xminimum 100
bar range bob_max value bob_points xmaximum 400
hbox:
label "Ларри: " xminimum 100
bar range larry_max value larry_points xmaximum 400
textbutton "Возврат" action Return()
label aff_screen_label:
call screen aff_screen
return
В скрипте игры[править | править код]
label start:
show screen button # сделает так, чтобы кнопка отображалась на экране
Если вы создаете информационный экран таким образом, что кнопка не всегда отображается:
label start:
show screen button
# хотя мы ранее сказали показать кнопку, она не будет отображаться до тех пор, пока переменная
# не пример значение True
"Бла бла бла!"
$ variable = True
# и теперь появится кнопка!
"Бла бла бла~"
$ variable = False
# и кнопка снова исчезает...
Источник[править | править код]
Статья "Information Screen" на английском языке
На главную страницу | Книга рецептов Энциклопедии Ren'Py | Книга рецептов Ren'Py | Вернуться к началу статьи |