fix sprite cache and rotating rectangular sprites

This commit is contained in:
Reimar 2025-10-15 10:44:08 +02:00
parent 4c54b8bfb6
commit 0391e92bb3

View File

@ -43,6 +43,8 @@ export class Gamelib {
this.canvas.removeEventListener("mouseup", this.mouseupListener); this.canvas.removeEventListener("mouseup", this.mouseupListener);
this.canvas.removeEventListener("contextmenu", this.contextMenuListener); this.canvas.removeEventListener("contextmenu", this.contextMenuListener);
this.spriteCache.clear();
clearInterval(this.loopInterval); clearInterval(this.loopInterval);
} }
@ -180,12 +182,14 @@ export class Gamelib {
const sprite = this.#loadSprite(width, height, name); const sprite = this.#loadSprite(width, height, name);
const newSprite = new OffscreenCanvas(sprite.width, sprite.height); const maxSize = Math.max(sprite.width, sprite.height);
const newSprite = new OffscreenCanvas(maxSize, maxSize);
console.log(newSprite);
const newSpriteCx = newSprite.getContext("2d"); const newSpriteCx = newSprite.getContext("2d");
newSpriteCx.imageSmoothingEnabled = false; newSpriteCx.imageSmoothingEnabled = false;
newSpriteCx.save(); newSpriteCx.save();
newSpriteCx.translate(sprite.width / 2, sprite.height / 2); newSpriteCx.translate(maxSize / 2, maxSize / 2);
newSpriteCx.rotate(angleNormalized); newSpriteCx.rotate(angleNormalized);
newSpriteCx.drawImage( newSpriteCx.drawImage(