diff options
| author | LLLL Colonq <llll@colonq> | 2026-08-17 20:14:16 -0400 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2026-08-17 20:14:16 -0400 |
| commit | de99c5f7636a952025ea13de02bafd25bcb6bdec (patch) | |
| tree | be359424af4f6717103e3b667b6529ae5a4b4e6a /2026/games_submissions/crm148/control.js | |
| parent | 4d4d1f24721f27fbf37e1070be6414de130ace61 (diff) | |
Fix broken
Diffstat (limited to '2026/games_submissions/crm148/control.js')
| -rw-r--r-- | 2026/games_submissions/crm148/control.js | 78 |
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, +} |
