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

时间:2021-01-28 17:18:29

标签: javascript input uwp gamepad

根据 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]); 
}

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

如果有人能帮忙,我将不胜感激!

1 个答案:

答案 0 :(得分:0)

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

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); 
}