diff --git a/script.js b/script.js index a843749..8331adc 100644 --- a/script.js +++ b/script.js @@ -19,6 +19,7 @@ let currentTool = SAND; let isDrawing = false; let isDragging = false; let lastMouseX, lastMouseY; +let currentMouseX, currentMouseY; let lastFrameTime = 0; let fps = 0; let worldOffsetX = 0; @@ -105,6 +106,10 @@ function handleMouseMove(e) { const x = e.clientX - rect.left; const y = e.clientY - rect.top; + // Always update current mouse position + currentMouseX = x; + currentMouseY = y; + if (isDragging) { // Calculate how much the mouse has moved const dx = x - lastMouseX; @@ -463,16 +468,14 @@ function render() { // Draw cursor position in debug mode if (debugMode) { - canvas.addEventListener('mousemove', function(e) { - const rect = canvas.getBoundingClientRect(); - const mouseX = e.clientX - rect.left; - const mouseY = e.clientY - rect.top; - const worldX = Math.floor(mouseX / PIXEL_SIZE) + worldOffsetX; - const worldY = Math.floor(mouseY / PIXEL_SIZE) + worldOffsetY; - - document.getElementById('coords').textContent = - `Chunk: ${Math.floor(worldOffsetX / CHUNK_SIZE)},${Math.floor(worldOffsetY / CHUNK_SIZE)} | ` + - `Mouse: ${worldX},${worldY} | Offset: ${Math.floor(worldOffsetX)},${Math.floor(worldOffsetY)}`; - }); + const rect = canvas.getBoundingClientRect(); + const mouseX = lastMouseX || 0; + const mouseY = lastMouseY || 0; + const worldX = Math.floor(mouseX / PIXEL_SIZE) + worldOffsetX; + const worldY = Math.floor(mouseY / PIXEL_SIZE) + worldOffsetY; + + document.getElementById('coords').textContent = + `Chunk: ${Math.floor(worldOffsetX / CHUNK_SIZE)},${Math.floor(worldOffsetY / CHUNK_SIZE)} | ` + + `Mouse: ${worldX},${worldY} | Offset: ${Math.floor(worldOffsetX)},${Math.floor(worldOffsetY)}`; } }