diff options
| author | Alexander M Pickering <alex@cogarr.net> | 2025-01-12 22:45:37 -0600 |
|---|---|---|
| committer | Alexander M Pickering <alex@cogarr.net> | 2025-01-12 22:45:37 -0600 |
| commit | 90ee66a3a6aae10fd84f3f43844db55229933e37 (patch) | |
| tree | f723f918871c3296636ef2538a1a29a23050e520 /src/controller_bridge.js | |
| parent | decb72f936060a65bff18e9cbf33642ea3a71cd0 (diff) | |
| download | ggj25-90ee66a3a6aae10fd84f3f43844db55229933e37.tar.gz ggj25-90ee66a3a6aae10fd84f3f43844db55229933e37.tar.bz2 ggj25-90ee66a3a6aae10fd84f3f43844db55229933e37.zip | |
work
Diffstat (limited to 'src/controller_bridge.js')
| -rw-r--r-- | src/controller_bridge.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/controller_bridge.js b/src/controller_bridge.js new file mode 100644 index 0000000..84bc040 --- /dev/null +++ b/src/controller_bridge.js @@ -0,0 +1,36 @@ + +window.addEventListener("gamepadconnected", function(e) { + console.log("Gamepad connected at index %d: %s. %d buttons, %d axes.", + e.gamepad.index, + e.gamepad.id, + e.gamepad.buttons.length, + e.gamepad.axes.length + ); + var i; + for(i = 0; i < e.gamepad.buttons.length; i++){ + CONT.last_state.buttons[i] = false; + } + for(i = 0; i < e.gamepad.axes.length; i++){ + CONT.last_state.axes[i] = 0; + } + CONT.gp = navigator.getGamepads()[0]; +}); + +window.CONT = { + messages: [], + gp: null, + last_state: { + buttons: [], + axes: [] + }, + loop: function() { + var i; + if(CONT.gp == null) return; + for(i = 0; i < CONT.gp.buttons.length; i++){ + CONT.last_state.buttons[i] = CONT.gp.buttons[i].pressed; + } + for(i = 0; i< CONT.gp.axes.length; i++){ + CONT.last_state.axes[i] = CONT.gp.axes[i]; + } + } +}; |
