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

! Однократное нажатие кнопки контроллера (: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())