Gamepad:buttons 属性

Baseline 已广泛支持

此特性已得到良好确立,可跨多种设备和浏览器版本使用。自 2017 年 3 月起,所有浏览器均支持此特性。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

buttons 属性是 Gamepad 接口的一个属性,它返回一个 GamepadButton 对象数组,这些对象代表设备上的按钮。

数组中的每个条目在按钮未按下时为 0,在按钮按下时为非零值(通常为 1.0)。

一个 GamepadButton 对象数组。

示例

根据按钮的类型,我们需要访问 GamepadButton.valueGamepadButton.pressed 属性。本示例支持两者。

js
function gameLoop() {
  const gp = navigator.getGamepads()[0];

  if (gp.buttons[0].value > 0 || gp.buttons[0].pressed) {
    b--;
  } else if (gp.buttons[1].value > 0 || gp.buttons[1].pressed) {
    a++;
  } else if (gp.buttons[2].value > 0 || gp.buttons[2].pressed) {
    b++;
  } else if (gp.buttons[3].value > 0 || gp.buttons[3].pressed) {
    a--;
  }

  ball.style.left = `${a * 2}px`; // ball is a UI widget
  ball.style.top = `${b * 2}px`;

  requestAnimationFrame(gameLoop);
}

规范

规范
Gamepad
# dom-gamepad-buttons

浏览器兼容性

另见

使用游戏手柄 API