GamepadButton

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

GamepadButton 接口定义了游戏手柄或其他控制器的单个按钮,允许访问控制设备上可用不同类型按钮的当前状态。

GamepadButton 对象通过查询 Gamepad 接口的 buttons 属性返回的数组的任何值来返回。

实例属性

GamepadButton.pressed 只读

一个布尔值,指示按钮当前是否按下 (true) 或未按下 (false)。

GamepadButton.touched 只读

一个布尔值,指示按钮当前是否被触摸 (true) 或未被触摸 (false)。

GamepadButton.value 只读

一个双精度值,用于表示模拟按钮(例如许多现代游戏手柄上的触发器)的当前状态。这些值被归一化为 0.0 — 1.0 的范围,其中 0.0 表示未按下的按钮,1.0 表示完全按下的按钮。

示例

以下示例中的按钮值存储为 GamepadButton 对象的数组。此简单示例检查 GamepadButton.value 的值是否大于 0,或者 GamepadButton.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);
}

规范

规范
游戏手柄
# gamepadbutton-interface

浏览器兼容性

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

另请参阅