Переменные В данной статье речь пойдёт о переменных и их полезности.
Для начала нам нужно объявить переменную. Желательно это сделать в начале "
label start:", но не обязательно. Объявление может быть расположено в любом месте "
label". Главное, объявление должно находиться до непосредственной работы с данной переменной. Стандартное объявление, это присваивание переменной нулю.
Код
label start:
$ per = 0
$ per - название нашей переменной, объявление переменных в количестве не ограничено.
0 - присваивание значения, в данном случае - переменная равна нулю.
P.S. Знак ($) обязателен, и после него необходимо поставить пробел.
Чаще всего переменные используются для запоминания определённых действий/выборов игрока.
Код
label start:
$ dei1 = 0
$ dei2 = 0
menu:
"Действие 1":
$ dei1 += 1
"Действие 2":
$ dei2 += 1
if dei1 == 1:
"Вы выбрали первое действие."
jump label ...
if dei2 == 1:
"Вы выбрали второе действие."
jump label ...
$ dei1; $ dei2 - объявление двух переменных
menu - вызов меню
Действие 1; Действие 2 - создание двух вариантов выбора
$ dei1 += 1; $ dei2 += 1 - так выглядит присваивание к переменной +1, т.е. прибавление единицы в переменную.
if - оператор
"if-else", дословно,
'если' переменная dei1 == 1, равна нулю ("==" - сравнение), тогда выводиться сообщение о том, что мы выбрали первое действие и переход к "
label ..."
P.S.S. К переменной можно как и добавлять значения, так и убавлять, или вовсе, сразу присваивать иные значения.
Код
$ per += 10
#Прибавление к переменной 10.
$ per -= 5
#Отнятия у переменной 5.
$ per = 50
#Присваивание переменной 50.
При создания новеллы, это полезно, когда вам необходимо вычислить определённое количество действий игрока.
К примеру, вам необходимо знать, сколько раз игрок помог кому-либо. Для этого, создаём переменную и при каждой помощи игрока, к переменной будем прибавлять 1. И в итоге можно вызвать оператор "
if-else", и поставить условия, если игрок помог больше 5 раз, то выход на хорошую концовку, если же игрок не набрал нужное количество очков, выход на плохую концовку.
Переменные можно создавать не только числовые, но и буквенные.
Код
$ pred = u"Hello, world"
u"..." - 'u' необходима, дабы Ren'Py распознал русский язык.
Все переменные можно выводить в диалоги. Для этого, в диалоге достаточно написать [имя_переменной] для её вывода.
Код
$ pred = u"Hello, world"
#Объявление переменной
"[pred] ..."
#Вывод её в диалог
Выглядеть это будет примерно так:
Сфера применения переменных достаточно обширная. Ограничением является лишь ваша фантазия.
©Программист
Celestial Novels
Комментарии к записи: 41
# записать в строку длинный список возможных строковых значений
# и выдёргивать рандомно одно из них
label start:
....$ all_names_string = u"Нюша, Клава, Фрося, Дуся"
....$ name = renpy.random.choice(all_names_string.split(', '))
...."[name], дай телефончик."
....jump start
....return
# ещё я использую переменные для красивого оформления прямой речи:
init:
....$ cl = "{/color}{/i}"
....$ clOn = "{i}{color="
....$ clBill = clOn+"#9999ff}"
....$ clTed = clOn+"#ff9999}"
label start:
....scene black
...."Он говорит:\n[clBill]«Привет, я - Билл».[cl]\nНу, океюшки."
...."Я отвечаю:\n[clTed]«Здорова, а я - Тед»."
....return
Возможно ли присвоить переменной отрицательное значение?
Типа "$ per = -5"
1) Lightbot : Code Hour
2) Hacked
это только те, что лично мне так понравились, что я их прошел))
С каждым рисовать картинку.
Показывать картинку через условие:
аля if sportswear == 1:
и показываешь картинку в спортивной форме =)
Правда зачем в Новелле показывать Главного Героя - если вся новелла - вид из его глаз оО решительно не понятно) Картинка для сцены с зеркалом?) Или под CG где он с девчонками? Тогда к каждой CG рисовать по комплекту одежды и точно также через условия и переменные ковыряться с отображением нужной в нужном выборе)
if sportswear == 1: - Смешно и тупо
есть команда def draw_characte, погуглите.
Лично я так засунула в новеллу создание персонажа.
Если не найдете,то я могу попробовать вам объяснить
first_ending = True
second_ending = True
и т.д
в нужный момент в новелле спросите
if first_ending:
if second_ending:
и т.д
переменные , если их не объявлять в начале переходят из игры в игру. Проверенно
К примеру,
....menu:
........"Пойти ли в магазин?"
........"Пойти одной.":
............"Я пошла в магазин и купила себе новые джинсы."
........"Пойти вместе с А-чан.": (Присутствует в меню, только если переменная A_friend = 5, если же нет, то чтобы этого выбора вообще не было видно.)
............"Мы с А-чан купили много красивых вещей, но у меня почти кончились деньги"
........"Не идти.":
............pass
Буду рада ответу и извините, если он глупый. Я только учусь делать новеллы.
Но нет ли варианта проще?
Вот, если кому интересно:
........"Пойти вместе с А-чан" if (A_friend == 5):
$ persistent.(название)= "Значение"
Потом просто проверяете значение через "if"
Тобишь
$ x = 0
Объявляется переменная
Потом по ходу игры в menu она получает
$ x += 1
И в конце в диалоге мне должны выдать значение этой переменной
t"Значение равно [x]"
Но выводит он мне [x]
Я что-то не так понял?
if dei1 == 3:
"Я с Мариной?"
else:
"Конец 1"
if dei2 == 3:
scene black with fade
"Я с Филиппом?"
else:
scene black with fade
"Конец 2"
if dei3 == 1:
"Конец 3"
Вот только после первой концовки начинается вторая,не подскажете,что мне делать?
А у меня вот такая проблема. Есть 3 концовки,
if per = X :
jump:
"Концовка 1"
if per = Y :
jump:
"Концовка 2"
if per = M :
jump:
"Концовка 3"
На 1 и 3 концовку выходит без проблем, а на 2 никак, какие бы значения переменной не добавлял/изменял, что делать?