fix: Resolve drawing functionality and mouse tracking issues
This commit is contained in:
parent
7f16ee7427
commit
ef2226b1d2
25
script.js
25
script.js
@ -19,6 +19,7 @@ let currentTool = SAND;
|
|||||||
let isDrawing = false;
|
let isDrawing = false;
|
||||||
let isDragging = false;
|
let isDragging = false;
|
||||||
let lastMouseX, lastMouseY;
|
let lastMouseX, lastMouseY;
|
||||||
|
let currentMouseX, currentMouseY;
|
||||||
let lastFrameTime = 0;
|
let lastFrameTime = 0;
|
||||||
let fps = 0;
|
let fps = 0;
|
||||||
let worldOffsetX = 0;
|
let worldOffsetX = 0;
|
||||||
@ -105,6 +106,10 @@ function handleMouseMove(e) {
|
|||||||
const x = e.clientX - rect.left;
|
const x = e.clientX - rect.left;
|
||||||
const y = e.clientY - rect.top;
|
const y = e.clientY - rect.top;
|
||||||
|
|
||||||
|
// Always update current mouse position
|
||||||
|
currentMouseX = x;
|
||||||
|
currentMouseY = y;
|
||||||
|
|
||||||
if (isDragging) {
|
if (isDragging) {
|
||||||
// Calculate how much the mouse has moved
|
// Calculate how much the mouse has moved
|
||||||
const dx = x - lastMouseX;
|
const dx = x - lastMouseX;
|
||||||
@ -463,16 +468,14 @@ function render() {
|
|||||||
|
|
||||||
// Draw cursor position in debug mode
|
// Draw cursor position in debug mode
|
||||||
if (debugMode) {
|
if (debugMode) {
|
||||||
canvas.addEventListener('mousemove', function(e) {
|
const rect = canvas.getBoundingClientRect();
|
||||||
const rect = canvas.getBoundingClientRect();
|
const mouseX = lastMouseX || 0;
|
||||||
const mouseX = e.clientX - rect.left;
|
const mouseY = lastMouseY || 0;
|
||||||
const mouseY = e.clientY - rect.top;
|
const worldX = Math.floor(mouseX / PIXEL_SIZE) + worldOffsetX;
|
||||||
const worldX = Math.floor(mouseX / PIXEL_SIZE) + worldOffsetX;
|
const worldY = Math.floor(mouseY / PIXEL_SIZE) + worldOffsetY;
|
||||||
const worldY = Math.floor(mouseY / PIXEL_SIZE) + worldOffsetY;
|
|
||||||
|
document.getElementById('coords').textContent =
|
||||||
document.getElementById('coords').textContent =
|
`Chunk: ${Math.floor(worldOffsetX / CHUNK_SIZE)},${Math.floor(worldOffsetY / CHUNK_SIZE)} | ` +
|
||||||
`Chunk: ${Math.floor(worldOffsetX / CHUNK_SIZE)},${Math.floor(worldOffsetY / CHUNK_SIZE)} | ` +
|
`Mouse: ${worldX},${worldY} | Offset: ${Math.floor(worldOffsetX)},${Math.floor(worldOffsetY)}`;
|
||||||
`Mouse: ${worldX},${worldY} | Offset: ${Math.floor(worldOffsetX)},${Math.floor(worldOffsetY)}`;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user