Информационный экран, пополняемый
Перейти к навигации
Перейти к поиску
init python:
# при первом запуске игры создается пустой список "открытий"
if persistent.pages is None:
persistent.pages = []
# номер текущей страницы
page = 0
# экран для отображения открытых страничек
screen scrPages:
# рамка для страницы
frame:
align (.5, .2) # расположение
# размеры
xminimum 500 xmaximum 500
yminimum 400 ymaximum 400
background "#0028" # фон
vbox:
spacing 16
# контейнер с кнопками управления страницами
hbox:
xfill True
# кнопка, которая листает страницы назад (с проверкой на границы)
# SensitiveIf делает кнопку активной при выполнении условия
textbutton _("«") align(.0, .0) action [SensitiveIf(page > 0), SetVariable("page", page - 1)]
text str(page + 1) + " из " + str(len(persistent.pages)) align(.5, .0)
# кнопка, которая листает страницы вперед (с проверкой на границы)
textbutton _("»") align(1.0, .0) action [SensitiveIf(page < len(persistent.pages) - 1), SetVariable("page", page + 1)]
# если текущая страница доступна, то выводим ее
if page >= 0 and page < len(persistent.pages):
$ title, txt, img = persistent.pages[page]
# горизонтальный контейнер, чтобы картинка была слева
hbox:
vbox:
# картинка
xminimum 200 xmaximum 200
# если она есть, то выводим
if img:
add img align(.5, .2)
# вертикальный контейнер для текста
vbox:
xfill True yalign .1
# расстояние между объектами в контейнере
spacing 16
# заголовок страницы
text title xalign .5
# текст страницы
text txt xfill True
label start:
"Для начала покажем экран со страницами. При первом запуске пустой."
show screen scrPages
"Добавим одну страницу."
$ persistent.pages.append(("Страница 1", "Текст страницы. Просто любой текст для того, чтобы показать пример.", "image1"))
"А теперь добавим еще пару страниц."
$ persistent.pages.append(("Страница 2", "Текст второй страницы. И снова просто любой текст для того, чтобы показать пример.", "image2"))
$ persistent.pages.append(("Страница 3", "Текст второй страницы. И снова просто любой текст для того, чтобы показать пример. Только в этот раз без картинки.", ""))
"Теперь их можно полистать."
hide screen scrPages
"Сеанс окончен. Всем спасибо."
menu:
"Очистить список страниц?"
"Да":
# эта строка очищает данные в списке страниц
$ persistent.pages = []
# скорее всего для этого будет использоваться кнопка
# textbutton _("Очистить") action SetField(persistent, "pages", [])
"Нет":
pass
return
Источник: Renpy для чайников: Информационный экран, пополняемый
На главную страницу | Книга рецептов Энциклопедии Ren'Py | Renpy для чайников | Вернуться к началу статьи |