! Создание аппаратного игрового контроллера (gamepad.connect)
Эта функция доступна только в версиях после 20260805.
Объявление
объект_контроллера, сообщение_об_ошибке = gamepad.connect([ свойства ])
Параметры
- свойства Таблица, необязательный параметр для настройки перечисленных ниже распространённых свойств устройства; значения в блоке кода используются по умолчанию, если свойства не указаны.
{
VendorID = 0x5858,
ProductID = 0x0007,
VersionNumber = 1,
Product = "XXTouch Gamepad",
Manufacturer = "XXTouch",
Transport = "USB",
}
Также можно задать SerialNumber и LocationID; для остальных свойств действие не гарантируется.
Возвращаемые значения
- объект контроллера Объект игрового контроллера или nil; при успешном создании устройства возвращается новый объект, при ошибке — nil.
- сообщение об ошибке Текст с описанием ошибки создания устройства.
Описание
- Каждый вызов возвращает новый независимый объект контроллера; состояния ввода и жизненные циклы разных объектов не зависят друг от друга.
- Контроллер поддерживает левый и правый стики, крестовину, цифровые кнопки
1–32и вводmenu. - Во время ожидания подключения текущий поток выполнения Lua уступает управление.
- Если система не поддерживает эту функцию,
gamepad.connectвозвращаетnil, error. - Успешное подключение означает только то, что с объектом контроллера можно работать; распознавание контроллера и всех его вводов целевым приложением зависит от версии системы и поддержки контроллеров самим приложением.
Transportвлияет только на способ распознавания контроллера локальной системой. Значения"Bluetooth"и"BluetoothLowEnergy"не устанавливают Bluetooth-соединение, не выполняют трансляцию или сопряжение и не добавляют контроллер в списки Bluetooth других устройств.
Пример
local pad, err = gamepad.connect({
Product = "XXTouch Gamepad",
})
assert(pad, err)
assert(pad:press("a"))
assert(pad:press("menu"))
assert(pad:down("left_shoulder"))
assert(pad:set_stick("left", 0.5, 1))
assert(pad:set_dpad(1, 0))
assert(pad:up("left_shoulder"))
assert(pad:reset())
pad:disconnect()