Skip to content
Advertisement

If more than one gamepad button pressed via UWP JavaScript

According to Microsoft docs, GamepadReading.buttons, It’s combination of buttons values…

Inside game loop via window.requestAnimationFrame (Or window.setInterval), I’m trying to implement way to check for pressing multiple gamepad buttons…

Here is the implementation, Although i used strings instead…

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

The problem i have is, The gamepad reading state changes each time, But i want way to not let this only detect one button, But also make it able to do multiple buttons, Instead of being forced to be one button…

If someone can help i’ll be very grateful!

Advertisement

Answer

This could be done with bitwise & operator.

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); 
}
User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement