Gamepad

Интерфейс Gamepad Gamepad API определяет отдельный геймпад или контроллер, предоставляющий доступ к такой информации, как: нажатие кнопок, позиции осей, и id.

Объект Gamepad может быть возвращён в одном из двух случаев: как свойство gamepad событий gamepadconnected (en-US) и gamepaddisconnected (en-US), или считыванием любой позиции в массиве, возвращённом методом Navigator.getGamepads().

Свойства

Gamepad.displayId Только для чтения

Возвращает VRDisplay.displayId (en-US) связанный с VRDisplay (en-US) (при необходимости) — VRDisplay отображаемая область которого управляется геймпадом.

Gamepad.id Только для чтения

DOMString содержит идентификационную информацию о контроллере.

Gamepad.index Только для чтения

Целое автоинкрементируемое значение, уникальное для каждого устройства, подключённого в данный момент к системе.

Gamepad.mapping Только для чтения

Строка, указывающая, переназначил ли браузер элементы управления устройства на уже известный шаблон.

Gamepad.connected Только для чтения

Логическое свойство показывающее, подключён ли геймпад к системе в данный момент.

Gamepad.buttons Только для чтения

Массив объектов gamepadButton представляющих кнопки устройства.

Gamepad.axes Только для чтения

Массив, представляющий элементы управления осями устройства (например, аналоговые стики).

Gamepad.timestamp Только для чтения

DOMHighResTimeStamp представляет время последнего обновления данных геймпада.

Экспериментальные расширения для Gamepad

Следующие интерфейсы определены в спецификации Gamepad Extensions, и предоставляют доступ к экспериментальным возможностям, таким как тактильная обратная связь (haptic feedback) и информация о положении WebVR контроллера.

Gamepad.hand (en-US) Только для чтения

Перечисляемое значение, которое определяет в какой руке находится контроллер.

Gamepad.hapticActuators (en-US) Только для чтения

Массив, содержащий объекты GamepadHapticActuator (en-US), каждый из которых представляет собой аппаратные средства тактильной обратной связи (haptic feedbac) доступные для контроллера.

Gamepad.pose (en-US) Только для чтения

Объект GamepadPose (en-US) представляет информацию о положении WebVR контроллера (например, позиция и ориентация в 3D пространстве).

Пример

js
window.addEventListener("gamepadconnected", function (e) {
  console.log(
    "Gamepad connected at index %d: %s. %d buttons, %d axes.",
    e.gamepad.index,
    e.gamepad.id,
    e.gamepad.buttons.length,
    e.gamepad.axes.length,
  );
});

Спецификации

Specification
Gamepad
# gamepad-interface
Gamepad Extensions
# partial-gamepad-interface

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также