В этой статье речь пойдет о Alterable Values или Изменяемые Значения или Переменные. Я объясню как в Clickteam fusion 2.5 можно использовать возможности изменяемых значений, фиксированных значений и флагов без которых никак не обойтись в создании игр. Они наверняка вам понадобятся что бы сделать:
- Параметр здоровья для врагов
- Параметр силы удара
- Имен и описаний к объектам в игре
- Изменения состояний объекта
- Хранения таких значений как координаты объекта
- Вычисление различных коэффициентов
- Визуальные эффекты и многое другое
Это лишь малая часть того где вам пригодятся переменные, существует еще куча ситуаций где вы будете их использовать. В Clickteam fusion существует 4 типа таких переменных:
- Fixed values — фиксированные значения
- Alterable values — переменные значения
- Alterable string — переменные строки
- Flags — флаги
Обо все по порядку.
Fixed values — Постоянные значения
Постоянные или фиксированные значения являются уникальными для каждого объекта в вашей игре. Вы не можете устанавливать эти значения самостоятельно. Все объекты получают уникальное фиксированное значение автоматически. Даже если у вас просто много экземпляров одного объекта, они все получают свое уникальное fixed value.
Для чего нужно использовать fixed value
Fixed value — очень специфичное значение состоящее из 6 цифр. Это значение в основном используется в объектах-модулях-расширениях в качестве параметра для определения: местоположения объекта, расстояния между двумя объектами, углом между двумя объектами и т.п. Как в модуле Clickteam Movement Controller
Вычисление угла между двумя объектами
Вычисление расстояния между двумя объектами
Alterable values — Переменные значения
Каждый объект в вашей игре, даже дубликаты, имеют свои собственные переменные. Каждый объект имеет в общей сложности 26 изменяемых значений (по одному на каждую букву англ. алфавита). По умолчанию все переменные равны нулю.
Как использовать Alterable values
Например вам надо сделать жизни для вашего персонажа или врагов. Вы создаете переменную (нажмите кнопку New на вкладке Values в свойствах объекта) и даете ей числовое значение например 100. Переменную можете назвать на русском языке — «Жизни».
Далее вы создаете события в которых происходит потеря жизней, например: Пуля попадает во врага — Из переменной «Жизни» врага вычитается 10. Даже если вы используете несколько экземпляров одного объекта врага жизни будут тратится только у того в которого попала пуля. Далее по логики должно последовать событие: Когда переменная Жизни равна нулю — уничтожить врага. В случае этого события любой враг чья переменная жизней равна нулю будет уничтожен.
Выглядит это в коде примерно так:
Spread values — Распределение значения
Существует еще тип переменных так называемые spread value, вернее, это не сама переменная, а особенное значение переменной, которое является пошаговым с шагом 1 на каждый экземпляр одного объекта. Spread value переводится как распространение значений, позволяет пронумеровать ваши объекты. Допустим в вашей игре несколько дубликатов одного объекта врага. Что бы обратиться к какому-то конкретному экземпляру вам необходимо создать у него какой-то отличительный параметр, как раз таким параметром и является spread value. Spread Value устанавливается в одну из переменных и ей назначается номер, например устанавливая число 0 ваши объекты будут пронумерованы как 0, 1, 2, 3 и так далее до последнего. Если установить число 5 то объекты получат номера от 5 — 5, 6, 7 и т.д. Потом вы можете создавать примерно такие события: если номер объекта такой-то, то … Подробнее о том как работать со spread value читайте здесь.
Alterable string — Строковые переменные
Строковые переменные почти то же самое, что и переменные значения, с той лишь разницей что они являются текстом а не числом. Они возможно используются не так часто и широко, но они могут быть очень полезными если вам нужно сохранить уникальный текст для каждого объекта (например имя). Представьте себе ситуацию в игре где вы наводите мышкой на различные объекты и над ними всплывает имя или описание. При помощи строковых переменных это реализовать довольно просто. Текст хранится в переменной, и что бы вывести текст вы работаете с переменной, а не прописываете в коде вывод конкретного текста для каждого конкретного объекта, вам достаточно обращаться к одной переменной для любого объекта.
Flags — Флаги
Флаг — это переменная логического типа, которая работает как переключатель и имеет только два состояния включено либо выключено (так же есть третье действие — переключить состояние), она принимает два значения 0-выключено, 1-включено.
Как использовать Flag
Допустим что у вас есть одно действие и два состояния, такое как например клик мыши включает лампочку и клик мыши выключает лампочку. В Clickteam fusion 2.5 у вас есть 3 действия для флага: вы можете включать флаг, выключать флаг и переключать флаг. По этому для события клика мыши устанавливается действие переключение флага. Вы должны назначить номер флага т.к. объект может иметь несколько флагов от 0 до 31. Затем на событие включенного флага устанавливается анимация включенной лампочки, а на событие выключенного флага устанавливается анимация потухшей лампочки.
Разрабатывая игры на Clickteam вы еще не раз столкнетесь с ситуацией когда вам придется использовать флаг для взаимоисключающих состояний на одно действие. Например, персонаж в игре стреляет патронами или ракетами в зависимости от оружия.