如果通过 UWP 按下多个游戏手柄按钮 JavaScript

If more than one gamepad button pressed via UWP JavaScript

根据 Microsoft 文档,GamepadReading.buttons,它是按钮值的组合...

通过 window.requestAnimationFrame(或 window.setInterval)在游戏循环中,我正在尝试实现检查是否按下多个游戏手柄按钮的方法...

这是实现,虽然我使用字符串代替...

function gamepadButtonPressed(gamepad_index, button) {
    var gamepad_state = window.Windows.Gaming.Input.Gamepad.gamepads[gamepad_index].getCurrentReading();
    if (button === "leftTrigger" || button === "rightTrigger") return (gamepad_state[button] >= 0.1);
    else return (gamepad_state.buttons === window.Windows.Gaming.Input.GamepadButtons[button]); 
}

我遇到的问题是,游戏手柄的读取状态每次都会改变,但我想办法不让它只检测一个按钮,但也让它能够做多个按钮,而不是被迫成为一个按钮...

如果有人能提供帮助,我将不胜感激!

这可以通过按位 & 运算符来完成。

function gamepadButtonPressed(gamepad_index, button) {
    var gamepad_state = window.Windows.Gaming.Input.Gamepad.gamepads[gamepad_index].getCurrentReading();
    if (button === "leftTrigger" || button === "rightTrigger") return (gamepad_state[button] >= 0.1);
    else return (gamepad_state.buttons & window.Windows.Gaming.Input.GamepadButtons[button] != 0); 
}