游戏手柄

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中可用。

Gamepad接口是游戏手柄 API的一部分,它定义了一个单独的游戏手柄或其他控制器,允许访问按钮按下、轴位置和 ID 等信息。

可以通过两种方式之一返回 Gamepad 对象:通过gamepadconnectedgamepaddisconnected事件的gamepad属性,或者通过获取Navigator.getGamepads()方法返回的数组中的任何位置。

实例属性

Gamepad.axes 只读

一个数组,表示设备上存在的具有轴的控件(例如模拟摇杆)。

Gamepad.buttons 只读

一个gamepadButton对象的数组,表示设备上存在的按钮。

Gamepad.connected 只读

一个布尔值,指示游戏手柄是否仍连接到系统。

Gamepad.displayId 只读 已弃用 非标准

返回关联的VRDisplay(如果相关)的VRDisplay.displayId - 游戏手柄正在控制其显示场景的VRDisplay

Gamepad.hand 只读 实验性

一个枚举,定义了控制器被握持在哪个手中,或者最有可能被握持在哪个手中。

Gamepad.hapticActuators 只读 实验性

一个包含GamepadHapticActuator对象的数组,每个对象表示控制器上可用的触觉反馈硬件。

Gamepad.vibrationActuator 只读

一个GamepadHapticActuator对象,表示控制器上可用的触觉反馈硬件。

Gamepad.id 只读

一个包含有关控制器的识别信息的字符串。

Gamepad.index 只读

一个整数,自动递增以对当前连接到系统的每个设备唯一。

Gamepad.mapping 只读

一个字符串,指示浏览器是否已将设备上的控件重新映射到已知布局。

Gamepad.pose 只读 实验性

一个GamepadPose对象,表示与 WebVR 控制器关联的姿势信息(例如,其在 3D 空间中的位置和方向)。

Gamepad.timestamp 只读

一个DOMHighResTimeStamp,表示此游戏手柄数据的最后更新时间。

示例

js
window.addEventListener("gamepadconnected", (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,
  );
});

规范

规范
游戏手柄
# gamepad-interface
游戏手柄扩展
# partial-gamepad-interface

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅