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.

* Some parts of this feature may have varying levels of support.

Интерфейс 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

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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Gamepad
axes
buttons
connected
displayId
DeprecatedNon-standard
hand
Experimental
hapticActuators
Experimental
id
index
mapping
pose
Experimental
Secure context required
Experimental
timestamp
vibrationActuator

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.
Non-standard. Check cross-browser support before using.
Deprecated. Not for use in new websites.
User must explicitly enable this feature.
Has more compatibility info.

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