! Однократное нажатие кнопки контроллера (:press)
Этот метод доступен только в версиях после 20260805.
Объявление
состояние, сообщение_об_ошибке = объект_контроллера:press(кнопка [, время_нажатия ])
Параметры
- кнопка Целое число или текст; поддерживаемые номера и имена см. в описании параметра кнопки.
- время нажатия Конечное неотрицательное число, необязательный параметр; время удержания кнопки в миллисекундах, по умолчанию 60.
Возвращаемые значения
- состояние Логическое значение: true при успешном нажатии и отпускании кнопки и false, если устройство отключено, занято, целевая кнопка уже нажата или отправка ввода завершилась ошибкой.
- сообщение об ошибке Текст с описанием ошибки операции.
Описание
- Нажимает и отпускает только целевую кнопку, не изменяя состояние других уже нажатых кнопок.
- Если целевая кнопка уже нажата, вызов завершается ошибкой.
- Во время ожидания времени нажатия
pressуступает управление текущему потоку Lua; в этот период другие операции с тем же контроллером возвращаютfalse, "hardware gamepad is busy", а с другими объектами контроллеров можно работать независимо. - Ошибки типа параметра, неизвестные имена и значения вне диапазона вызывают ошибку параметров Lua.
Пример
local pad = assert(gamepad.connect())
assert(pad:press("a"))
assert(pad:press("menu"))
assert(pad:press(32))
assert(pad:disconnect())