diff options
Diffstat (limited to 'src/engine/config/sprites.ts')
-rw-r--r-- | src/engine/config/sprites.ts | 39 |
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); |