GamepadButton
GamepadButton
接口定义了游戏手柄或其他控制器的单个按钮,允许访问控制设备上可用不同类型按钮的当前状态。
GamepadButton
对象通过查询 Gamepad
接口的 buttons
属性返回的数组的任何值来返回。
实例属性
-
一个布尔值,指示按钮当前是否按下 (
true
) 或未按下 (false
)。 -
一个布尔值,指示按钮当前是否被触摸 (
true
) 或未被触摸 (false
)。 -
一个双精度值,用于表示模拟按钮(例如许多现代游戏手柄上的触发器)的当前状态。这些值被归一化为 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 的浏览器中加载。