Перейти к основному содержанию

inputs и actions


inputs и actions

Автоматически переведённая страница

К сожалению, на полный ручной перевод у нас не хватает ресурсов.
Если вы увидели ошибку — отправьте пул-риквест с исправлениями (ссылка для редактирования в конце страницы).

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

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

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

JavaScript
/**
 * Перемещаем копию.
 * См. "Проект" > "Действия и методы ввода"
 * и "Действия" в документации.
 */
this.hspeed = 8 * actions.MoveX.value; // Перемещаем по оси X
this.vspeed = 8 * actions.MoveY.value; // Перемещаем по оси Y
if (actions.Shoot.pressed) {
    templates.copy('Bullet', this.x, this.y);
}

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

ctAction.value => number

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

ctAction.pressed => boolean

Указывает, стала ли активна действие в текущем кадре, либо нажав кнопку, либо используя скалярный ввод.

Возвращает: booleantrue, если было нажато, и false в противном случае

ctAction.released -> boolean

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

Возвращает: boolean – true для отпускания и false в противном случае

ctAction.down => boolean

Возвращает, активна ли функция, например, при нажатии кнопки или использовании текущего скалярного ввода

Возвращает: boolean - true, если функция активна, и false, если нет.

ctAction.methodExists(code) ⇒ boolean

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

Возвращает: boolean - true, если он существует, false в противном случае.

ПараметрТипОписание
codeStringКод для поиска.

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

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

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

ctAction.removeMethod(код) => void

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

ПараметрТипОписание
кодStringМетод ввода, который необходимо удалить.

ctAction.setMultiplier(код, коэффициент) => void

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

ПараметрТипОписание
кодStringКод метода ввода для изменения
коэффициентNumberНовое значение

ctAction.update() => Number

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

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

ctAction.reset() => void

Устанавливает состояние действия, устанавливая его значение на 0 и состояния pressed, down, released на false.

Создание и удаление новых действий программно

Создание и удаление новых действий программно

inputs.addAction(name, methods) -> CtAction

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

ПараметрТипОписание
nameStringИмя действия, которое будет использоваться в actions.
methodsArray<Object>Список входных методов. Этот список можно изменить позже.

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

Пример:

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

inputs.removeAction(name) => void

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

ПараметрТипОписание
namestringИмя действия

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