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