Gamepad API - 访问和响应来自游戏手柄和其他游戏控制器的信号的方法

游戏手柄 API 是一种让开发人员以简单、一致的方式访问和响应来自游戏手柄和其他游戏控制器的信号的方法。它包含三个接口、两个事件和一个专业功能,以响应游戏板的连接和断开,并访问有关游戏手柄本身的其他信息,以及当前按下了哪些按钮和其他控件。

接口

Gamepad

表示连接到计算机的游戏手柄 / 控制器。

GamepadButton

表示已连接控制器之一上的按钮。

GamepadEvent

表示与游戏手柄相关的触发事件的事件对象。

实验性游戏手柄扩展

GamepadHapticActuator

表示控制器中的硬件,旨在为用户提供触觉反馈(如果可用),最常见的是振动硬件。

GamepadPose

WebVR 控制器的情况下,表示控制器的姿势(例如 3D 空间中的位置和方向)。较新的 WebXR 标准使用此方法。

另请参阅游戏手柄接口的扩展,了解允许您访问上述信息的功能。

其他接口的扩展

Navigator 对象的扩展,返回一组 Gamepad 对象,每个连接表示一个游戏手柄。

Window 事件

Window.ongamepadconnected

表示将在游戏手柄连接时运行的事件处理程序(当 gamepadconnected 事件触发时)。

Window.ongamepaddisconnected

表示将在游戏手柄断开连接时运行的事件处理程序(当 gamepaddisconnected 事件触发时)。

教程和指南

规范

规范 状态 备注
Gamepad Extensions 编者的草案 Defines the Experimental Gamepad extensions.
Gamepad
The Gamepad API specification 的定义
工作草案 初始定义

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持

35

21 — 34 webkit

12

29

24 — 28

不支持

22

15 — 21 webkit

10.1
axes

35

21 — 34 webkit

12

29

24 — 28

不支持

22

15 — 21 webkit

10.1
buttons

35

21 — 34 webkit

12

29

24 — 28

不支持

22

15 — 21 webkit

10.1
connected

35

25 — 34 webkit

12

29

24 — 28

不支持

22

15 — 21 webkit

10.1
displayId 支持 — 80115

553

644

不支持 未知 不支持
hand 不支持15 — 79 支持5 不支持 不支持 不支持
hapticActuators 不支持15 — 79 支持5 不支持 不支持 不支持
id

35

21 — 34 webkit

12

29

24 — 28

不支持

22

15 — 21 webkit

不支持
index

35

21 — 34 webkit

12

29

24 — 28

不支持

22

15 — 21 webkit

10.1
mapping

35

21 — 34 webkit

12

29

24 — 28

不支持

22

15 — 21 webkit

10.1
pose 不支持15 — 79 支持5 不支持 不支持 不支持
timestamp

35

21 — 34 webkit

12

29

24 — 28

不支持

22

15 — 21 webkit

10.1
vibrationActuator6879 不支持 不支持55 不支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 不支持

35

25 — 34 webkit

未知32 未知

22

14 — 21 webkit

10.3
axes 不支持

35

25 — 34 webkit

未知32 未知

22

14 — 21 webkit

10.3
buttons 不支持

35

25 — 34 webkit

未知32 未知

22

14 — 21 webkit

10.3
connected 不支持

35

25 — 34 webkit

未知32 未知

22

14 — 21 webkit

10.3
displayId 不支持 支持 — 802 未知55 未知 未知 不支持
hand 不支持 不支持 未知 不支持 未知 不支持 不支持
hapticActuators 不支持 不支持 未知 不支持 未知 不支持 不支持
id 不支持

35

25 — 34 webkit

未知32 未知

22

14 — 21 webkit

不支持
index 不支持

35

25 — 34 webkit

未知32 未知

22

14 — 21 webkit

10.3
mapping 不支持

35

25 — 34 webkit

未知32 未知

22

14 — 21 webkit

10.3
pose 不支持 不支持 未知 不支持 未知 不支持 不支持
timestamp 不支持

35

25 — 34 webkit

未知32 未知

22

14 — 21 webkit

10.3
vibrationActuator 不支持68 未知 不支持 未知48 不支持

1. 仅适用于 Chrome 的实验版本的桌面(其他版本在调用 Navigator.getVRDisplays() 时不会返回任何设备)。

2. 目前仅由 Google Daydream 支持。

3. 在 Firefox 55 中启用了 Windows 支持。

4. 在 Firefox 64 中启用了 macOS 支持。

5. 该标志在 Firefox Nightly 和 Beta 版本 55 及更高版本中默认启用。

相关链接