From 0011bc9877348ffce76208ddfef664f2cad933c9 Mon Sep 17 00:00:00 2001 From: tekki mariani Date: Fri, 20 Mar 2026 21:06:14 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix=20debug=20cross:=20clear+red?= =?UTF-8?q?raw=20each=20frame=20at=20world-space=20center,=20no=20transfor?= =?UTF-8?q?ms?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/systems/CameraSystem.ts | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/systems/CameraSystem.ts b/src/systems/CameraSystem.ts index 68018c8..c8ab1e6 100644 --- a/src/systems/CameraSystem.ts +++ b/src/systems/CameraSystem.ts @@ -57,12 +57,9 @@ export class CameraSystem { d: kb.addKey(Phaser.Input.Keyboard.KeyCodes.D), } - // Debug cross — positioned in world space at viewport center, updated each frame + // Debug cross — redrawn every frame in world space, no transforms needed this.debugCross = this.scene.add.graphics() this.debugCross.setDepth(999) - this.debugCross.lineStyle(2, 0xff0000, 1) - this.debugCross.lineBetween(-12, 0, 12, 0) - this.debugCross.lineBetween(0, -12, 0, 12) // Track mouse world position on every move so we have a stable value for zoom this.scene.input.on('pointermove', (ptr: Phaser.Input.Pointer) => { @@ -134,13 +131,15 @@ export class CameraSystem { cam.scrollX = Phaser.Math.Clamp(cam.scrollX + dx, 0, worldW - cam.width / cam.zoom) cam.scrollY = Phaser.Math.Clamp(cam.scrollY + dy, 0, worldH - cam.height / cam.zoom) - // Keep debug cross at viewport center in world space, counter-scale so it stays 1px + // Redraw debug cross every frame at viewport center in world space if (this.debugCross) { - this.debugCross.setPosition( - cam.scrollX + cam.width / (2 * cam.zoom), - cam.scrollY + cam.height / (2 * cam.zoom), - ) - this.debugCross.setScale(1 / cam.zoom) + const cx = cam.scrollX + cam.width / (2 * cam.zoom) + const cy = cam.scrollY + cam.height / (2 * cam.zoom) + const arm = 12 / cam.zoom // 12 screen pixels at any zoom + this.debugCross.clear() + this.debugCross.lineStyle(2 / cam.zoom, 0xff0000, 1) + this.debugCross.lineBetween(cx - arm, cy, cx + arm, cy) + this.debugCross.lineBetween(cx, cy - arm, cx, cy + arm) } // Periodically save camera center as "player position"