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
Только для чтения-
Логическое свойство показывающее, подключён ли геймпад к системе в данный момент.
-
Массив объектов
gamepadButton
представляющих кнопки устройства. Gamepad.axes
Только для чтения-
Массив, представляющий элементы управления осями устройства (например, аналоговые стики).
Gamepad.timestamp
Только для чтения-
DOMHighResTimeStamp
представляет время последнего обновления данных геймпада.
Экспериментальные расширения для Gamepad
Следующие интерфейсы определены в спецификации Gamepad Extensions, и предоставляют доступ к экспериментальным возможностям, таким как тактильная обратная связь (haptic feedback) и информация о положении WebVR контроллера.
Gamepad.hand
Только для чтения-
Перечисляемое значение, которое определяет в какой руке находится контроллер.
Gamepad.hapticActuators
Только для чтения-
Массив, содержащий объекты
GamepadHapticActuator
, каждый из которых представляет собой аппаратные средства тактильной обратной связи (haptic feedbac) доступные для контроллера. Gamepad.pose
Только для чтения-
Объект
GamepadPose
представляет информацию о положении WebVR контроллера (например, позиция и ориентация в 3D пространстве).
Пример
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