Gamepad

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.

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

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

Свойства

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

Возвращает VRDisplay.displayId связанный с VRDisplay (при необходимости) — 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 Только для чтения

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

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

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

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

Объект GamepadPose представляет информацию о положении 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

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