diff --git a/package-lock.json b/package-lock.json index 34fe79a..a78bfba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@starweb-libs/engine", - "version": "0.0.3", + "version": "0.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@starweb-libs/engine", - "version": "0.0.3", + "version": "0.0.4", "license": "MIT", "devDependencies": { "tsdown": "^0.22.0", diff --git a/package.json b/package.json index 842f022..616d7a4 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@starweb-libs/engine", "description": "A lightweight 2D game engine for the browser", "author": "Mason L'Etoile", - "version": "0.0.3", + "version": "0.0.4", "license": "MIT", "repository": { "type": "git", diff --git a/src/bootstrap.ts b/src/bootstrap.ts new file mode 100644 index 0000000..a45c6a9 --- /dev/null +++ b/src/bootstrap.ts @@ -0,0 +1,12 @@ +import { createGameCanvas } from "./canvas.js"; +import { initKeyboard } from "./input/keyboard.js"; +import { initPointer } from "./input/pointer.js"; + +export function bootstrapGame() { + const { canvas, ctx, size } = createGameCanvas(); + + initKeyboard(); + initPointer(canvas); + + return { canvas, ctx, size }; +} diff --git a/src/transition.ts b/src/transition.ts new file mode 100644 index 0000000..2e6d721 --- /dev/null +++ b/src/transition.ts @@ -0,0 +1,10 @@ +import { flushPointer } from "./input/pointer.js"; +import { flushKeyboard } from "./input/keyboard.js"; + +export function transition(frame: T, audio: { playSound(name: string): void }, fn?: () => void): T { + audio.playSound("button"); + fn?.(); + flushPointer(); + flushKeyboard(); + return frame; +}