barsunduk

renpy pages

May 13th, 2016 (edited)
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.15 KB | None | 0 0
  1. init python:
  2.     # при первом запуске игры создается пустой список "открытий"
  3.     if persistent.pages is None:
  4.         persistent.pages = []
  5.  
  6.     # номер текущей страницы
  7.     page = 0
  8.  
  9. # экран для отображения открытых страничек
  10. screen scrPages:
  11.     # рамка для страницы
  12.     frame:
  13.         align (.5, .2) # расположение
  14.         # размеры
  15.         xminimum 500 xmaximum 500
  16.         yminimum 400 ymaximum 400
  17.         background "#0028" # фон
  18.         vbox:
  19.             spacing 16
  20.             # контейнер с кнопками управления страницами
  21.             hbox:
  22.                 xfill True
  23.                 # кнопка, которая листает страницы назад (с проверкой на границы)
  24.                 # SensitiveIf делает кнопку активной при выполнении условия
  25.                 textbutton _("«") align(.0, .0) action [SensitiveIf(page > 0), SetVariable("page", page - 1)]
  26.                 text str(page + 1) + " из " + str(len(persistent.pages)) align(.5, .0)
  27.                 # кнопка, которая листает страницы вперед (с проверкой на границы)
  28.                 textbutton _("»") align(1.0, .0) action [SensitiveIf(page < len(persistent.pages) - 1), SetVariable("page", page + 1)]
  29.             # если текущая страница доступна, то выводим ее
  30.             if page >= 0 and page < len(persistent.pages):
  31.                 $ title, txt, img = persistent.pages[page]
  32.                 # горизонтальный контейнер, чтобы картинка была слева
  33.                 hbox:
  34.                     vbox:
  35.                         # картинка
  36.                         xminimum 200 xmaximum 200
  37.                         # если она есть, то выводим
  38.                         if img:
  39.                             add img align(.5, .2)
  40.                     # вертикальный контейнер для текста
  41.                     vbox:
  42.                         xfill True yalign .1
  43.                         # расстояние между объектами в контейнере
  44.                         spacing 16
  45.                         # заголовок страницы
  46.                         text title xalign .5
  47.                         # текст страницы
  48.                         text txt xfill True
  49.  
  50. label start:
  51.     "Для начала покажем экран со страницами. При первом запуске пустой."
  52.  
  53.     show screen scrPages
  54.  
  55.     "Добавим одну страницу."
  56.  
  57.     $ persistent.pages.append(("Страница 1", "Текст страницы. Просто любой текст для того, чтобы показать пример.", "image1"))
  58.  
  59.     "А теперь добавим еще пару страниц."
  60.  
  61.     $ persistent.pages.append(("Страница 2", "Текст второй страницы. И снова просто любой текст для того, чтобы показать пример.", "image2"))
  62.  
  63.     $ persistent.pages.append(("Страница 3", "Текст второй страницы. И снова просто любой текст для того, чтобы показать пример. Только в этот раз без картинки.", ""))
  64.  
  65.     "Теперь их можно полистать."
  66.  
  67.     hide screen scrPages
  68.  
  69.     "Сеанс окончен. Всем спасибо."
  70.  
  71.     menu:
  72.         "Очистить список страниц?"
  73.  
  74.         "Да":
  75.             # эта строка очищает данные в списке страниц
  76.             $ persistent.pages = []
  77.             # скорее всего для этого будет использоваться кнопка
  78.             # textbutton _("Очистить") action SetField(persistent, "pages", [])
  79.  
  80.         "Нет":
  81.             pass
  82.     return
Add Comment
Please, Sign In to add comment