MultiplayerMinesweeper/www/scripts/interface/game/mouse.js

55 lines
1.3 KiB
JavaScript

import {game} from "../../game/game.js";
import { clickCanvas } from "/scripts/net/netcode.js";
import { getButton } from "/scripts/interface/game/picker.js";
import { canvas } from "../../display/html.js"
class Cursor {
constructor(){
this.x = 0
this.y = 0
this.xold = 0
this.yold = 0
}
}
export var cursor = new Cursor();
canvas.addEventListener('mousemove', e => {
mouseMoved(e)
});
canvas.addEventListener("mousedown", function(e)
{
getMousePosition(canvas, e);
});
function mouseMoved(event) {
const tileSize = game.tileSize
const x = Math.floor(event.offsetX/tileSize)
const y = Math.floor(event.offsetY/tileSize)
if (cursor.xold != x || cursor.yold != y) {
cursor.x = x
cursor.y = y
// renderHud(x, y)
cursor.xold = x
cursor.yold = y
}
}
function getMousePosition(canvas, event) {
const tileSize = game.tileSize
// Get mouse position on canvas
const rect = canvas.getBoundingClientRect();
const mouseX = event.clientX - rect.left;
const mouseY = event.clientY - rect.top;
// scale mouse coordinates to canvas coordinates
const xu = Math.floor((mouseX * canvas.width / canvas.clientWidth)/tileSize);
const yu = Math.floor((mouseY * canvas.height / canvas.clientHeight)/tileSize);
const button = event.button
console.log("Click!")
console.log(xu,yu)
clickCanvas({tilePosition: [xu,yu], mode: button})
}