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, если нет.

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

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

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

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

ctAction.removeMethod(code) ⇒ void

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

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

ctAction.setMultiplier(code, multiplier) ⇒ void

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

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

ctAction.update() ⇒ Number

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

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

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

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

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

АргументТипОписание
nameStringНазвание действия, как оно будет использоваться в ct.actions.
methodsArray<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

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

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

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

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

new CtAction(name)

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

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