From 33ccf56969cbb41b3fcb8c09b9fd91b51ae01850 Mon Sep 17 00:00:00 2001 From: Theis Pieter Hollebeek Date: Tue, 14 Oct 2025 14:06:12 +0200 Subject: [PATCH] fix canvas mouse event ratio --- src/gamelib.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/gamelib.js b/src/gamelib.js index 51e4960..ae76391 100644 --- a/src/gamelib.js +++ b/src/gamelib.js @@ -37,10 +37,18 @@ export class Gamelib { }); canvasElement.addEventListener("mousemove", (ev) => { - this.mouseX = ev.offsetX; - this.mouseY = ev.offsetY; + const ratioX = canvasElement.width / canvasElement.clientWidth; + const ratioY = canvasElement.height / canvasElement.clientHeight; - this.mouseMoveHandler?.(ev.offsetX, ev.offsetY, ev.movementX, ev.movementY); + this.mouseX = ev.offsetX * ratioX; + this.mouseY = ev.offsetY * ratioY; + + this.mouseMoveHandler?.( + ev.offsetX * ratioX, + ev.offsetY * ratioY, + ev.movementX * ratioX, + ev.movementY * ratioY, + ); }); canvasElement.addEventListener("mousedown", (ev) => {