Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Топ:
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2021-11-25 | 16 |
5.00
из
|
Заказать работу |
|
|
Глобальные переменные могут быть определены где угодно, с помощью VARоператора. Им должно быть присвоено начальное значение, которое определяет, к какому типу переменных они относятся: целочисленные, с плавающей запятой (десятичные), контент или адрес истории.
VAR knowledge_of_the_cure = false
VAR players_name = "Emilia"
VAR number_of_infected_people = 521
VAR current_epilogue = -> they_all_die_of_the_plague
Использование глобальных переменных
Мы можем тестировать глобальные переменные для управления опциями и предоставлять условный текст аналогично тому, что мы видели ранее.
=== the_train ===
The train jolted and rattled. { mood > 0:I was feeling positive enough, however, and did not mind the odd bump|It was more than I could bear}.
* { not knows_about_wager } 'But, Monsieur, why are we travelling?'[] I asked.
* { knows_about_wager} I contemplated our strange adventure[]. Would it be possible?
Дополнительно: сохранение дивертов в качестве переменных
Оператор «divert» на самом деле представляет собой тип значения и может быть сохранен, изменен и перенаправлен.
VAR current_epilogue = -> everybody_dies
=== continue_or_quit ===
Give up now, or keep trying to save your Kingdom?
* [Keep trying!] -> more_hopeless_introspection
* [Give up] -> current_epilogue
Дополнительно: глобальные переменные видны снаружи
Глобальные переменные могут быть доступны и изменены как во время выполнения, так и из истории, что обеспечивает хороший способ связи между более широкой игрой и историей.
Чернила слой часто быть хорошим местом для хранения геймплейных-переменных; нет проблем с сохранением / загрузкой, и сама история может реагировать на текущие значения.
Переменные печати
Значение переменной может быть напечатано как содержимое с использованием встроенного синтаксиса, аналогичного последовательностям, и условного текста:
VAR friendly_name_of_player = "Jackie"
|
VAR age = 23
My name is Jean Passepartout, but my friend's call me {friendly_name_of_player}. I'm {age} years old.
Это может быть полезно при отладке. Для более сложной печати, основанной на логике и переменных, см. Раздел о функциях.
Оценка строк
Можно заметить, что выше мы упоминали, что переменные могут содержать «содержимое», а не «строки». Это было преднамеренно, потому что строка, определенная чернилами, может содержать чернила - хотя она всегда будет соответствовать строке. (Yikes!)
VAR a_colour = ""
~ a_colour = "{~red|blue|green|yellow}"
{a_colour}
... производит красный, синий, зеленый или желтый.
Note that once a piece of content like this is evaluated, its value is "sticky". (The quantum state collapses.) So the following:
The goon hits you, and sparks fly before you eyes, {a_colour} and {a_colour}.
... won't produce a very interesting effect. (If you really want this to work, use a text function to print the colour!)
This is also why
VAR a_colour = "{~red|blue|green|yellow}"
is explicitly disallowed; it would be evaluated on the construction of the story, which probably isn't what you want.
Logic
Obviously, our global variables are not intended to be constants, so we need a syntax for altering them.
Since by default, any text in an ink script is printed out directly to the screen, we use a markup symbol to indicate that a line of content is intended meant to be doing some numerical work, we use the ~ mark.
The following statements all assign values to variables:
=== set_some_variables ===
~ knows_about_wager = true
~ x = (x * x) - (y * y) + c
~ y = 2 * x * y
and the following will test conditions:
{ x == 1.2 }
{ x / 2 > 4 }
{ y - 1 <= x * x }
Mathematics
ink supports the four basic mathematical operations (+, -, * and /), as well as % (or mod), which returns the remainder after integer division. There's also POW for to-the-power-of:
{POW(3, 2)} is 9.
{POW(16, 0.5)} is 4.
If more complex operations are required, one can write functions (using recursion if necessary), or call out to external, game-code functions (for anything more advanced).
RANDOM(min, max)
Ink can generate random integers if required using the RANDOM function. RANDOM is authored to be like a dice (yes, pendants, we said a dice), so the min and max values are both inclusive.
~ temp dice_roll = RANDOM(1, 6)
~ temp lazy_grading_for_test_paper = RANDOM(30, 75)
~ temp number_of_heads_the_serpent_has = RANDOM(3, 8)
The random number generator can be seeded for testing purposes, see the section of Game Queries and Functions section above.
|
|
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!