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

Добавление новых методов ввода в ct.js


Добавление новых методов ввода в ct.js

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

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

Ct.js использует систему Actions для управления вводом с мыши, клавиатуры, игровых контроллеров и т. д. Если вы создаете модуль с новым методом ввода, вам нужно сделать несколько вещей.

1. Предоставьте список доступных входных сигналов (также называемых «входными методами»)

С этим списком пользователи смогут выбрать ваши новые методы ввода в ct.IDE с редактором действий. Для этого вам необходимо добавить новый элемент inputMethods в ваш файл module.json:

{
    "main": {
        "name": "Модуль для новой методики ввода",
        "version": "0.0.0",
        "authors": [{/*...*/}]
    },
    "inputMethods": {
        "Code1": "Название первой кнопки, оси и т. д.",
        "Code2": "Название второй кнопки, оси и т. д.",
        "Code3": "Название третьей кнопки, оси и т. д."
    }
}

Это позволит пользователям выбирать между различными методами ввода при использовании вашего модуля.

2. Напишите код для обновления ct.inputs.registry

Далее вам необходимо написать модуль, который будет обновлять ct.inputs.registry. Это объект, похожий на словарь, с ключами, равными имени вашего модуля + код сигнала, и числовыми значениями от -1 до 1.

Здесь 0 означает отсутствие сигнала (например, кнопка не нажата или рычаг в исходном положении). Аналого-цифровые джойстики будут использовать полный диапазон от -1 до 1, в то время как кнопки обычно будут переключаться между 0 и 1.

ct.inputs.registry['keyboard.keyW'] = 1;
ct.inputs.registry['gamepad.LeftThumbX'] = 0,2;

В зависимости от используемого вами метода ввода и его nativa API, вам может потребоваться проверять их на каждом кадре с помощью инъекций или слушать их события.

Примеры

Для новых вводных методов нет стандартных примеров, но вы можете ознакомиться с модулями mouse, keyboard, gamepad и vkeys в папке ct.js/data/ct.libs. Они решают свои задачи по-разному.