Advertisement
barsunduk

renpy game run time analogue

May 4th, 2016
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.25 KB | None | 0 0
  1. init python:
  2.     import datetime
  3.     # время старта текущей сессии игры = время последней проверки
  4.     persistent.game_last_time = datetime.datetime.now()
  5.     # общее время в игре в секундах
  6.     if persistent.gametime is None:
  7.         persistent.gametime = 0
  8.     # функция для отображения текущего общего времени в игре
  9.     def show_gametime(st, at):
  10.         # сколько прошло со времени последней проверки
  11.         t = datetime.datetime.now()
  12.         dt = t - persistent.game_last_time
  13.         # запоминаем текущее время, как время последней проверки
  14.         persistent.game_last_time = t
  15.         # суммируем время в игре со временем с последней проверки
  16.         persistent.gametime += dt.total_seconds() # в секундах
  17.         # переводим секунды в часы, минуты, секунды
  18.         minutes, seconds = divmod(int(persistent.gametime), 60)
  19.         hours, minutes = divmod(minutes, 60)
  20.         # переводим текст в изображение
  21.         # с форматированием (добавлением нулей, если число не двузначное)
  22.         img = Text("%0*d:%0*d:%0*d" % (2, hours, 2, minutes, 2, seconds))
  23.         # на выходе изображение со временем
  24.         return img, .1
  25. init:
  26.     # привязываем функцию к динамическому изображению,
  27.     # чтобы счетчик тикал без обновления экранов
  28.     image gametime = DynamicDisplayable(show_gametime)
  29.  
  30. screen scr_game_time:
  31.     # эту же строку можно добавить и в главное меню:
  32.     add "gametime" align(.95, .05)
  33.  
  34. # для сброса времени в игре:
  35. # $ persistent.gametime = 0
  36. # или привязать к кнопке:
  37. # textbutton _("Сброс времени") action SetField(persistent, "gametime", 0)
  38.  
  39. # Игра начинается здесь.
  40. label start:
  41.     show screen scr_game_time
  42.     "Текст игры."
  43.     return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement