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
Комментарии
Отправить комментарий