aboutsummaryrefslogtreecommitdiff
path: root/src/controller_bridge.js
diff options
context:
space:
mode:
authorAlex Pickering <alex@cogarr.net>2026-02-01 13:14:32 -0600
committerAlexander M Pickering <alex@cogarr.net>2026-02-01 13:14:32 -0600
commit3a975db66a3711f34e8b64bb27a8eaca79fdeca9 (patch)
treefcc12f8f9d638ff575c1963796de76b7628854b4 /src/controller_bridge.js
downloadggj26-master.tar.gz
ggj26-master.tar.bz2
ggj26-master.zip
Initial commitHEADmaster
Diffstat (limited to 'src/controller_bridge.js')
-rw-r--r--src/controller_bridge.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/controller_bridge.js b/src/controller_bridge.js
new file mode 100644
index 0000000..3e559f4
--- /dev/null
+++ b/src/controller_bridge.js
@@ -0,0 +1,38 @@
+
+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: {
+ on: false,
+ 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];
+ }
+ CONT.last_state.on = true;
+ }
+};