From 1c4c2bde8e73a3d7c211fddff9f925d23aa70f75 Mon Sep 17 00:00:00 2001 From: ztimson Date: Sun, 8 Mar 2026 21:08:58 -0400 Subject: [PATCH] soldier test --- assets/sprites/soldier/spritesheet.png | Bin 0 -> 5664 bytes src/npc.ts | 6 +++--- src/renderer.ts | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 assets/sprites/soldier/spritesheet.png diff --git a/assets/sprites/soldier/spritesheet.png b/assets/sprites/soldier/spritesheet.png new file mode 100644 index 0000000000000000000000000000000000000000..3af13f336a7e3c6e27487384b26244f73c2cbc20 GIT binary patch literal 5664 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 T=9U=$opHWW)lsQdvI_qn+X_h= literal 0 HcmV?d00001 diff --git a/src/npc.ts b/src/npc.ts index f8b0e2e..345eaf1 100644 --- a/src/npc.ts +++ b/src/npc.ts @@ -35,9 +35,9 @@ export class NPC { if(this.options.scale == null) this.options.scale = 1; this.sprite = new SpriteSheet(ctx, spriteSheetPath, spriteDefPath); - setInterval(() => { - this.message(String.fromCodePoint(this.emojis[~~(Math.random() * this.emojis.length)])); - }, 10000); + // setInterval(() => { + // this.message(String.fromCodePoint(this.emojis[~~(Math.random() * this.emojis.length)])); + // }, 10000); } animate(name: string, reverse = false) { diff --git a/src/renderer.ts b/src/renderer.ts index 43f150d..626a103 100644 --- a/src/renderer.ts +++ b/src/renderer.ts @@ -18,12 +18,12 @@ const dog = new NPC(ctx, scale: 0.25 }); -const soldier = new NPC(ctx, +const soldiers = Array(100).fill(null).map(() => new NPC(ctx, './assets/sprites/soldier/spritesheet.png', '../assets/sprites/soldier/spritesheet.json', { bubbleOffset: [0, 32], scale: 1 - }); + })); let frame = 0, once = true; setInterval(() => { @@ -32,6 +32,6 @@ setInterval(() => { clearScreen(); dog.tick(); - soldier.tick(); + soldiers.forEach(s => s.tick()); }) }, 1000 / FRAME_RATE);