fix: Resolve drawing functionality and mouse tracking issues

This commit is contained in:
Kacper Kostka (aider) 2025-04-04 11:12:46 +02:00
parent 7f16ee7427
commit ef2226b1d2

View File

@ -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;
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)}`;
});
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)}`;
}
}