Рейтинг темы:
  • Голосов: 2 - Средняя оценка: 5. Если голосов меньше 5 оценка не показывается.
  • 1
  • 2
  • 3
  • 4
  • 5
RenPy
init:
   $ xvar1 = 2
label start:

   "..."
   label test2:
   e "..." ## сохранились и добавили init: $ xvar1 = 2
   e "..."
   "[xvar1]"   ## 2!
   $ xvar1 = 5
   "[xvar1]"   ## 5!
   "..."
   "..." ## сохранились!
   "..."
   "..."
   "[xvar1]" ## 5! хм... smile
   e "..."
   e "Вы создали новую игру Ren'Py." ## smile
   e "Добавьте сюжет, изображения и музыку и отправьте её в мир!"
   return
Хм, я тоже считал, что init: будет сбрасывать значение.  biggrin Но значение берётся из сэйва... помутнение secret
Но если код не совсем линейный и попробуешь воспользоваться переменной заданной через инит, раньше чем переназначишь  $ xvar1 = 5, будут траблы... значение будет 2.

 
Ответить
Всем привет. Есть запырка с функцией.
В общем, есть несколько переменных, пусть будут name1, ..., nameN
Нужна функция, которой будут скармливаться имя переменной и значение, и которая должна, в том числе, присваивать переменной нужное значение.

вызов из кода игры идет как-то так:
Код:
$ myfunc  (name1, 2)

Поначалу написал какой-то такой вариант:
Код:
init python:
   def myfunc (fname, amount):
        fname1 = amount

Закономерно не работает. Можно сделать вот таким костылем, в объявлением возможной пемеренной, сравнением итд, тогда работает, но нафиг некрасиво и геморно. И в перспективе список переменных будет сильно расширяться.

Код:
init python:
   def myfunc (fname, amount):
       global name1
       if fname == name1:
           name1 = amount
   
В общем, как-бы это сделать попроще и красивее? Чтобы не объявлять все переменные в функции, хотя бы.


UPD неактуально.
Решается через
globals()[fname] = amount

 
Ответить


Переход:


Просматривают эту тему: 1 Гость(ей)