This commit is contained in:
Schluffe
2026-02-25 00:58:53 +01:00
parent 51a0fe38ef
commit 9ab90b579c
9 changed files with 166 additions and 74 deletions
+29
View File
@@ -0,0 +1,29 @@
import { drawSprite, type Sprite, spriteSheetMap } from "#/engine/Sprite.ts";
import type { Vector } from "#/engine/Vector.ts";
export type Drawable = {
position: Vector;
sprite: Sprite;
};
export function isDrawable<T>(
entity: {
position?: Vector;
sprite?: Sprite;
} & T,
): entity is Drawable & T {
return (
typeof entity.position === "object" && typeof entity.sprite === "object"
);
}
export function draw(ctx: CanvasRenderingContext2D, drawable: Drawable): void {
drawSprite(
ctx,
spriteSheetMap.get(drawable.sprite.src)!,
drawable.sprite.xStart,
drawable.sprite.yStart,
drawable.position.x,
drawable.position.y,
);
}