summaryrefslogtreecommitdiff
path: root/src/engine/config/sprites.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/config/sprites.ts')
-rw-r--r--src/engine/config/sprites.ts39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/engine/config/sprites.ts b/src/engine/config/sprites.ts
new file mode 100644
index 0000000..37185fd
--- /dev/null
+++ b/src/engine/config/sprites.ts
@@ -0,0 +1,39 @@
+import { Direction } from "../interfaces/Direction";
+
+export enum Sprites {
+ PLAYER,
+}
+
+export interface SpriteSpec {
+ sheet: string;
+ width: number;
+ height: number;
+ frames: number;
+ msPerFrame: number;
+ states?: Map<string | number, Partial<SpriteSpec>>;
+}
+
+export const SPRITE_SPECS: Map<Sprites, Partial<SpriteSpec>> = new Map<
+ Sprites,
+ SpriteSpec
+>();
+
+const playerSpriteSpec = {
+ msPerFrame: 200,
+ width: 64,
+ height: 64,
+ frames: 3,
+ states: new Map<string, Partial<SpriteSpec>>(),
+};
+playerSpriteSpec.states.set(Direction.NONE, {
+ sheet: "/assets/lambda/neutral.png",
+});
+[Direction.LEFT, Direction.RIGHT, Direction.UP, Direction.DOWN].forEach(
+ (direction) => {
+ playerSpriteSpec.states.set(direction, {
+ sheet: `/assets/lambda/${direction.toLowerCase()}.png`,
+ });
+ },
+);
+
+SPRITE_SPECS.set(Sprites.PLAYER, playerSpriteSpec);