Добавление новых методов ввода в 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
. Они решают свои задачи по-разному.