Function
Объект функции может запускать различные события (On function) в действии (Call function). Это аналог функций в традиционном программировании. Использование функций может помочь организовать ваши события и избежать повторения групп действий или событий, экономя место и ваше время.О функцияхОсновная задача объекта функция - это использовать действие call function (вызвать функцию). Это действие включает в себя имя функции (например, call function "CreateEnemy"). Действие запускает соответствующее имени событие "on function" (в данном случае on function "CreateEnemy"), которое запускает действия события и подсобытия, перед тем как вернуться к действию call function, которое запустило эту функцию, и продолжиться с того момента, с которого оно остановилось.
Как другой пример, предположим вы создаете бота со случайными параметрами каждые пять секунд, настраивая его размер, здоровье, цвет, номер анимационного фрейма и еще много параметров.
Предположим, что существуют еще 2 других события, где вы хотите создать такой же тип бота: одно, когда игрок попадает в ловушку и еще одно, каждые 4 секунды во время битвы с боссом. Без функций вам пришлось бы копировать эти действия несколько раз, что заняло бы много места.
Отметьте, что это становится неудобным. В некоторых случаях, вам, возможно, придется повторить эту процедуру даже большее число раз. Если вам нужно будет что-то изменить, то вам необходимо будет произвести изменения в каждом событии. Мы можем избежать повторений, используя функции. Создавая функцию CreateEnemy, которая содержит повторяющиеся действия, мы можем заменить повторяющиеся действия с помощью Call function.
Это работает точно так же, как и предыдущие события, но намного короче и более удобно. Мы можем использовать действие call "CreateEnemy" каждый раз, когда мы хотим создать бота, и это будет использовать такой же набор действий как и в on "CreateEnemy" действии.
Часто бывает полезно разбить ваши события на подобные рассмотренной функции, так, чтобы их можно было удобно использовать повторно.
ПараметрыКогда мы вызываем функцию, мы также можем задать параметры. Это числа или строки, которые изменяют работу функции. Например, функция CreateEnemy из предыдущего примера может быть модифицирована так, чтобы принимать 2 параметра: координаты X и Y, в которых нужно создавать бота. В этом случае первый параметр будет числом-координатой икс, а второй параметр - число-координата игрек. В on function в координатах создания объекта прописываем Function.param(0) для X и Function.param(1) для Y. Это помогает функциям выполнять более общие задачи, используя дополнительную информацию из действий, которые вызывают функцию.
Для того чтобы добавить параметр, кликните на ссылку add parameter, которая появляется в диалоге параметров, когда мы настраиваем действие call function.
Дополнительные особенности функцийКак и в языках программирования, объект функции поддерживает следующее:
- Функции, которые вызывают другие функции.
- Функции, которые вызывают сами себя (рекурсия).
- Возвращаемые значения из функций.
- Вызывание функций из выражений (которые также возвращают значение).
Обратите внимание, что функции, которые вызывают другие функции или рекурсию, создают новый стек локальных переменных. Другими словами, как и в языках программирования, локальные переменные уникальны на каждом уровне вызова функций. Это не применяется к статичным локальным переменным и к глобальным переменным.Также отметьте, что объект функции отправляет лог консоли браузера, если используется некорректно, например, вызывает несуществующую функцию или пытается использовать параметр, который не был задан. Это может помочь идентифицировать проблемы использования функций в больших проектах.Возвращаемые значения из функцийФункции также могут возвращать результат. Например, функция факториала может сосчитать математический результат и возвратить его. В событии On function возвращаемое значение может быть настроено, используя действие Set return value.
Если событие было вызвано действием Call function, возвращаемое значение после доступно, используя ReturnValue выражение. Функции также могут быть вызваны прямо из выражения, используя выражение Call. В этом случае возвращаемое значение автоматически возвращается как результат выражения Call.
Условия функций - Compare parameter - сравнить параметр, сравнивает значение одного из параметром с вызванным в функции. Это условие следует использовать только в событии On function, так как вне вызова функции нет настроенных параметров.
- On function. Триггер, запускается, когда соответствующее действие Call function использовано.
Действия функций - Call function - запускает соответствующие события On function. Дополнительные параметры могут быть заданы для доступа к выражению Param.
- Set return value - в событии функции устанавливает значение, которое возвращается в место, откуда функция была вызвана. Это может быть возвращено как при помощи выражения Call, так и получено позже, используя выражение ReturnValue.
Выражения функций - Call - вызывает функцию прямо из выражения. Выражение возвращает возвращаемое значение, которое было установлено внутри функции или 0, если нет установленного возвращаемого значения. Дополнительные параметры могут быть факультативно добавлены после имени функции, например, function.Call("CreateEnemy",123,456).
- Param - возвращает параметр, переданный функции из вызова через индекс, начинающийся с 0. Например, function.Param(0) возвращает значение первого параметра.
- ParamCount - возвращает число параметров, переданных функции из вызова.
- ReturnValue - возвращает значение, установлено через действие Set return value из последнего вызова функции. Если Set return value не используется в функции, возвращает 0.
Источник