ct.inputs, ct.actions

Этот модуль (ct.inputs) позволяет управлять Действиями. Вы можете создавать новые действия во время игры, изменять или удалять их.

ct.actions хранит существующие действия. Если вы создали действие Move, то оно будет доступно как ct.actions.Move. Каждое из действий является экземпляром класса JS CtAction.

Вот пример использования действий в вашей игре:

/**
 * Move the copy around.
 * See Settings > Edit actions panel
 * and "Actions" in the docs.
 */
this.hspeed = 8 * ct.actions.MoveX.value; // Move by X axis
this.vspeed = 8 * ct.actions.MoveY.value; // Move by Y axis
if (ct.actions.Shoot.pressed) {
    ct.types.copy('Bullet', this.x, this.y);
}

Методы и свойства действий

ctAction.value ⇒ Number

Вещественное значение от -1 до 1. 0 означает, что в текущем кадре нет входных данных — например, все джойстики находятся в исходном положении, или все кнопки были отпущены. При использовании с клавиатурой и мышью значения действий будут равны либо 0, либо 1, а также -1, если использовались множители. Джойстики на геймпаде и другие аналоговые манипуляторы могут создавать значения между этими величинами.

ctAction.pressed ⇒ Boolean

Возвращает, стало ли действие активным в текущем кадре — напрмер, за счёт только что нажатой кнопки, либо с помощью скалярного ввода.

Возвращает: Booleantrue, если было нажато и false, если нет

ctAction.released ⇒ Boolean

Возвращает, стало ли действие неактивным в текущем кадре — например, за счёт отпускания всех кнопок или перехода всех аналоговых методов ввода в состояние покоя.

Возвращает: Booleantrue, если стало неактивно и false в остальных случаях

ctAction.down ⇒ Boolean

Возвращает, является ли действие активным — например, если зажата кнопка или активен аналоговый метод ввода.

Возвращает: Booleantrue, если активно и false, если нет

ctAction.methodExists(code) ⇒ Boolean

Проверяет, прослушивает ли текущее действие данный метод ввода. Функция при этом не проверяет, поддерживается ли этот метод ввода в ct.

Возвращает: Booleantrue, если такой метод прослушивается и false, если нет.

Аргумент Тип Описание
code String Код искомого метода ввода.

ctAction.addMethod(code, [multiplier]) ⇒ void

Добавляет новый метод ввода для прослушивания.

Аргумент Тип Описание
code String Код метода ввода для прослушивания. Должно быть уникальным для каждого действия.
[multiplier] Number Необязательный множитель, используемый, например, чтобы обратить значение действия. Часто используется с парой кнопок, чтобы объединить их в псевдо-аналоговый метод ввода, аналогичный джойстикам

ctAction.removeMethod(code) ⇒ void

Удаляет указанный метод ввода из действия.

Аргумент Тип Описание
code String Код удаляемого метода ввода.

ctAction.setMultiplier(code, multiplier) ⇒ void

Изменяет множитель для метода ввода с указанным кодом. Функция выдаст предупреждение при попытке изменить метод ввода, который не прослушивается действием.

Аргумент Тип Описание
code String Код метода ввода для изменения
multiplier Number Новое значение множителя

ctAction.update() ⇒ Number

Пересчитывает цифровое значение действия.

Возвращает: Number – вещественную величину от -1 до 1.

Программное создание и удаление действий

ct.inputs.addAction(name, methods) ⇒ CtAction

Добавляет новое действие и помещает его в ct.actions.

Аргумент Тип Описание
name String Название действия, как оно будет использоваться в ct.actions.
methods Array<Object> Список методов ввода. Этот список может быть изменён после создания действия.

Возвращает: CtAction – Созданное действие

Пример:

ct.inputs.addAction('Move', [{
    code: 'keyboard.ArrowLeft',
    multiplier: -1
}, {
    code: 'keyboard.ArrowRight'
}, {
    code: 'keyboard.KeyA',
    multiplier: -1
}, {
    code: 'keyboard.KeyD'
}]);

ct.inputs.removeAction(name, methods) ⇒ void

Удаляет действие с указанным именем.

Аргумент Тип Описание
name String Название действия

Возвращает: void

Создание новых действий без добавления их в ct.actions

new CtAction(name)

Создаёт новое действие.

Аргумент Тип Описание
name String Название нового действия.