summaryrefslogtreecommitdiff
path: root/2026/games_submissions/crm148/control.js
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-08-17 20:14:16 -0400
committerLLLL Colonq <llll@colonq>2026-08-17 20:14:16 -0400
commitde99c5f7636a952025ea13de02bafd25bcb6bdec (patch)
treebe359424af4f6717103e3b667b6529ae5a4b4e6a /2026/games_submissions/crm148/control.js
parent4d4d1f24721f27fbf37e1070be6414de130ace61 (diff)
Fix broken
Diffstat (limited to '2026/games_submissions/crm148/control.js')
-rw-r--r--2026/games_submissions/crm148/control.js78
1 files changed, 78 insertions, 0 deletions
diff --git a/2026/games_submissions/crm148/control.js b/2026/games_submissions/crm148/control.js
new file mode 100644
index 0000000..7e93e13
--- /dev/null
+++ b/2026/games_submissions/crm148/control.js
@@ -0,0 +1,78 @@
+
+import Vec2 from './vec2.js';
+import { globalView } from './view.js';
+
+var gCosmos;
+var view;
+
+
+
+/// Game state
+function victory() {
+ window.parent.postMessage({op: "done", win: true});
+ shutdown();
+}
+
+function death() {
+ window.parent.postMessage({op: "done", win: false});
+ shutdown();
+}
+
+function shutdown() {
+ gCosmos.stop();
+ gameCanvas.removeEventListener('mousedown', mousedown);
+ gameCanvas.removeEventListener('mouseup', mouseup);
+}
+
+
+
+/// Input
+function initInput(cosmos) {
+ gameCanvas.addEventListener('mousedown', mousedown);
+ gameCanvas.addEventListener('mouseup', mouseup);
+ gCosmos = cosmos;
+ view = globalView();
+}
+
+function mousedown(ev) {
+ var ship = gCosmos.player;
+ ship.inputTarget(getMouseCoord(ev));
+ ship.inputThrust(1.0);
+ gameCanvas.addEventListener('mousemove', mousemove);
+}
+
+function mouseup(ev) {
+ var ship = gCosmos.player;
+ gameCanvas.removeEventListener('mousemove', mousemove);
+ ship.inputThrust(0.0);
+}
+
+function mousemove(ev) {
+ var ship = gCosmos.player;
+ ship.inputTarget(getMouseCoord(ev));
+}
+
+function getMouseCoord(ev) {
+ var coord = view.unproject(new Vec2(ev.clientX, ev.clientY));
+ return coord;
+}
+
+
+var debugInfo = {};
+function debugKey(k, v) {
+ debugInfo[k] = v;
+}
+function getDebugInfo() {
+ return debugInfo;
+}
+
+
+
+/// Exports
+export {
+ initInput,
+ victory,
+ death,
+ debugKey,
+ getDebugInfo,
+}