Fix mouse offset for high resolution displays.

This commit is contained in:
yukirij 2024-10-15 12:46:52 -07:00
parent 50499653d5
commit 383f511fe4

View File

@ -136,14 +136,17 @@ const INTERFACE = {
INTERFACE_DATA.hover = null;
let mouse_x = event.offsetX * (window.devicePixelRatio || 1);
let mouse_y = event.offsetY * (window.devicePixelRatio || 1);
// Handle board area
if(event.offsetY >= INTERFACE_DATA.Render.margin.t && event.offsetY < INTERFACE_DATA.Render.margin.l + INTERFACE_DATA.Render.area.y) {
if(event.offsetX >= INTERFACE_DATA.Render.offset.x && event.offsetX < INTERFACE_DATA.Render.offset.x + INTERFACE_DATA.Render.board_width) {
if(mouse_y >= INTERFACE_DATA.Render.margin.t && mouse_y < INTERFACE_DATA.Render.margin.l + INTERFACE_DATA.Render.area.y) {
if(mouse_x >= INTERFACE_DATA.Render.offset.x && mouse_x < INTERFACE_DATA.Render.offset.x + INTERFACE_DATA.Render.board_width) {
let basis_x = INTERFACE_DATA.Render.offset.x + halfradius;
let basis_y = INTERFACE_DATA.Render.offset.y + (14 * apothem);
let x = (event.offsetX - basis_x) / grid_offset_x;
let x = (mouse_x - basis_x) / grid_offset_x;
let y = -(event.offsetY - basis_y) / apothem;
let kx = Math.floor(x);
@ -169,12 +172,12 @@ const INTERFACE = {
}
// Handle pool area
else if(event.offsetX >= INTERFACE_DATA.Render.pool_offset && event.offsetX < INTERFACE_DATA.Render.offset.x + INTERFACE_DATA.Render.area.x) {
else if(mouse_x >= INTERFACE_DATA.Render.pool_offset && mouse_x < INTERFACE_DATA.Render.offset.x + INTERFACE_DATA.Render.area.x) {
let basis_x = INTERFACE_DATA.Render.pool_offset + halfradius;
let basis_y = INTERFACE_DATA.Render.offset.y + (3 * apothem);
let x = (event.offsetX - basis_x) / grid_offset_x;
let x = (mouse_x - basis_x) / grid_offset_x;
let y = (event.offsetY - basis_y) / apothem;
let kx = Math.floor(x);