Войти
Использование Флагов и Переменных.

Использование Флагов и Переменных. 

Вы знаете, что большинство визуальных новелл имеют «хороший конец» и «плохой конец»?
В этих играх обычно решается, какой путь или конец последует при выборе того или иного флага(ответа) во время игра, а также при отслеживании таких переменных, как уровни дружеских отношений с другими героями и т.п.


Такие типы флагов и переменных могут быть использованы в TyranoBuilder, благодаря компонентам TyranoScript и iScript, которые мы рассмотрим в этом уроке.

Основной процесс в использовании TyranoScript или iScript заключается в присвоении значения и оценки переменных, затем TyranoScript переходит к различным ярлыкам или файлам сцен, в зависимости от результата проверки. Так выбираются различные ветви(развития) и окончания.

Переменные и флаги очень важны, вы можете многое сделать даже с простым сложением или вычитанием, так что не забудьте использовать их в своих играх!


Сейчас переходим к уроку!
 



Виды переменных:


Системные переменные (System variables).
Эти переменные являются общими для всей игры. Например, переменная, которая отслеживает "Сколько раз игрок завершил игру?", которые не будут отражены в файле сохранения, этот тип переменной.

Игровые переменные (Game variables).
Эти переменные связаны с сохранением данных. Всякий раз, когда мы загружаем сохраненные данные, они будут перезаписаны. Примерами таких переменных может быть: какие предметы есть у игрока, или какой выбор он делал до сих пор.

Временные переменные (Temporary variables).
Эти переменные используют данные, которые хранятся лишь временно. Эти данные будут потеряны, если игра перезапущена или закрыта.

 
Использование TyranoScript.

TyranoScript используется путем вставки компонента «TyranoScript» в Scene Editor. С панели инструментов перетаскиваем компонент «TyranoScript» в Scene Editor.



Сюда мы будем записывать наши флаги и переменные. Посмотрим примеры написания, используя переменные.

;Этот присваивает строку системной переменной
[eval exp="sf.variable1 = 'Пример текста'"]

;Этот присваивает номер к переменной игры
[eval exp="f.flag1 = 1000"]

;Этот назначает временную переменную
[eval exp="tf.flag1 = f.flag2"]


Использование компонента iScript.

Компонент iScript работает также как TyranoScript, но позволяет вам использовать в полную силу JavaScript в TyranoBuilder. Можно без преувеличения сказать, что JavaScript – наиболее широко используемый язык программирования в мире, поэтому, научившись использовать iScript, вы научитесь одному из самых практичных языков программирования, который можете потом с легкостью использовать в других приложениях!

С панели инструментов перетаскиваем компонент «iScript» в Scene Editor.



JavaScript вводится через текстовое поле компонента «iScript» в Scene Editor. Вы можете использовать компонент «iScript» вместе с evals. Например, код ниже имеет точно такой же эффект, как в предыдущем примере код TyranoScript.

[iscript]
sf.variable1 = 'Sample Text'
f.flag1 = 1000
tf.flag1 = f.flag2
[endscript]



Рассмотрим другой пример. Введем код, приведенный ниже, в текстовую область iScript:

var flag = 3; alert("Текущие значение флага "+flag+", Да?");
flag = flag + 3 ;
alert("Новое значение флага "+flag+". Ня:)");

Сохраняем проект и запускаем скрипт.
Если вы видите два всплывающих окна, как показано ниже, то все получилось!


 

Есть над чем подумать, да?
В первой строке, var flag=3 готовит переменную ‘flag’ и придает ей значение 3.
Тогда, значение флага отображается с помощью Alert ().
В следующей строке flag = flag + 3 добавляется еще 3 к значению флага.


Именование переменных.

TyranoScript позволяет вам давать такое название переменных, как вы хотите, но с одним условием, что переменная не может начинаться с цифры.
Например,  f.3name не может быть использовано как имя переменной.

Использование переменных влияет на прогрессирование игры. Допустим, вы хотите, чтобы произошло определенное событие, или последовали разные ветви истории в зависимости от значения флагов и переменных, которые вы установили. Это делается с помощью TyranoScript, некоторые действия мы рассмотрим прямо сейчас. Например, для установления переменной используем iScript, а затем с помощью TyranoScript оценим значение и выполним другой компонент, соответственно.



Для различия между хорошим концом и плохим, нам необходимо сложить или вычесть значения переменных, в зависимости от выбора, который сделали игроки, или маршрута, которому они следовали в течение игры. Затем проверяем значение переменных и переходим к хорошему концу или плохому концу, в зависимости от значения. Сейчас рассмотрим, как выполнять вычисления с переменными и как оценить результаты.
 


Вычисления с переменными.


Хорошо, тогда сейчас рассмотрим, как выполнять вычисления с переменными.

[eval exp="f.flag1 = f.flag1 + 1"]
В приведенном выше примере, мы добавили 1 к значению f.flag1 и сохранили результат в переменной f.flag1. (Другими словами, мы добавили 1 к f.flag1.)

[eval exp="f.flag1 = f.flag1 + f.flag2 * f.flag3"]
На этот раз, результат умножения f.flag2 на f.flag3 + f.flag1 сохранится в f.flag1. Чтобы разделить, используйте слэш (/).
Чтобы связать строки, можно использовать +:

[eval exp="f.flag2 = 'sticky '"]
[eval exp="f.flag3 = 'toffee'"]
[eval exp="f.flag1= f.flag2 + f.flag3"]


Оценка условий.

Ниже приведены основные операции, используемые для оценки переменных и условий.
a==b верно, когда a=b
a!=b верно, когда а не равно b
a<b верно, когда а меньше b
a>b верно, когда а больше b
a<=b верно, когда а меньше или равно b
a>-b верно, когда а больше или равно b

Эти операции, как правило, используются в сочетании с тэгом [if].
При условии, что выражение верно, тэг if завершает код тэгом endif.
Например:

[if exp="f.flag1==2"]f.flag1 is 2[endif]
[if exp="f.flag1!=2"]f.flag1 is not 2 [endif]

iScript позволяет пользовать всеми операциями, имеющихся в JavaScript, которых значительно больше тех, что мы привели выше.
Более подробно изучить операции вы можете здесь:
http://www.w3schools.com/jsref/jsref_operators.asp


Отображение содержания переменной.

Для отображения содержания переменной в вашей игре используйте тэг [emb]. Ниже пример (простой маленький пример:)…

[cm]
[eval exp="f.num=200"]
[eval exp="f.mojiretu='Hello!'"]
f.num _contents : [emb exp="f.num"][l][r]
f.mojiretu_contents : [emb exp="f.mojiretu"][l][r]

Запуск данного кода будет производить:
Содержание of f.num: 200
Содержание of f.string: Hello!

Вы можете использовать это, чтобы имена главных героев определялись и изменялись пользователями.


Очистка и удаление переменных.

Используйте [clearvar] для того, чтобы очистить игровые переменные, а [clearsysvar] очищает системные переменные.
Для удаления переменных просто используйте “delete (название переменной)“. Например, ниже код будет удалять f.flag1.

[eval exp="delete.f.flag1"]


Организация (entity).

Функция entity позволяет содержание переменной переписать другим значением тэга. Рядом со значением ставим знак &, а затем имя переменной.

;Назначает текстовую строку временной переменной
[iscript]
tf.title = "This is a test."
[endscript]
;Назначает переменную, которая сохранится со значением текста 'This is a test.' И отображается на экране.
[ptext layer=1 page=fore text=&tf.title size=30 x=180 y=150 color=red ]


Это было введение в использование флагов и переменных.
Переменные и флаги могут действительно поднять вашу игру на следующий уровень с точки зрения выбора игроков и эффектов, а для создания более стратегические игры они вообще необходимы!
 


06.01.2025
Всего комментариев: 0
avatar