Определение глобальных переменных — КиберПедия 

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Определение глобальных переменных

2021-11-25 15
Определение глобальных переменных 0.00 из 5.00 0 оценок
Заказать работу

Глобальные переменные могут быть определены где угодно, с помощью 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.


Поделиться с друзьями:

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.012 с.