From 72c6c7de12e9833f52bf2d0718d70f044f8ab57e Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Thu, 20 Jul 2023 20:47:32 -0700 Subject: a bit of refactoring; importing engine into bun for server --- client/src/JumpStorm.ts | 54 ++++++++++++++++++++++++++++ client/src/components/GameCanvas.svelte | 9 ++--- client/src/components/LeaderBoard.svelte | 2 +- client/src/components/LeaderBoardCard.svelte | 2 +- 4 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 client/src/JumpStorm.ts (limited to 'client/src') diff --git a/client/src/JumpStorm.ts b/client/src/JumpStorm.ts new file mode 100644 index 0000000..45ea163 --- /dev/null +++ b/client/src/JumpStorm.ts @@ -0,0 +1,54 @@ +import { Floor, Player } from "@engine/entities"; +import { Game } from "@engine/Game"; +import { + WallBounds, + FacingDirection, + Render, + Physics, + Input, + Collision, +} from "@engine/systems"; + +export class JumpStorm { + private game: Game; + + constructor(ctx: CanvasRenderingContext2D) { + this.game = new Game(); + + [ + this.createInputSystem(), + new FacingDirection(), + new Physics(), + new Collision(), + new WallBounds(ctx.canvas.width), + new Render(ctx), + ].forEach((system) => this.game.addSystem(system)); + + [new Floor(160), new Player()].forEach((entity) => + this.game.addEntity(entity) + ); + } + + public play() { + this.game.start(); + + const loop = (timestamp: number) => { + this.game.doGameLoop(timestamp); + requestAnimationFrame(loop); // tail call recursion! /s + }; + requestAnimationFrame(loop); + } + + private createInputSystem(): Input { + const inputSystem = new Input(); + + window.addEventListener("keydown", (e) => { + if (!e.repeat) { + inputSystem.keyPressed(e.key); + } + }); + window.addEventListener("keyup", (e) => inputSystem.keyReleased(e.key)); + + return inputSystem; + } +} diff --git a/client/src/components/GameCanvas.svelte b/client/src/components/GameCanvas.svelte index 766a08a..d7abecf 100644 --- a/client/src/components/GameCanvas.svelte +++ b/client/src/components/GameCanvas.svelte @@ -1,11 +1,8 @@