Есть функция для преобразования координат мыши в координаты карты
export function canvasCoordinatesToMapCoordinates(
coordinates: ICoordinates,
camera: Camera,
textureSize: number
): ICoordinates {
const coordinateX = Math.floor((coordinates.x + camera.x) / textureSize);
const coordinateY = Math.floor((coordinates.y + camera.y) / textureSize);
return {
x: coordinateX,
y: coordinateY,
};
}
Для значений
coordinates = {x: 61, y: 64}
camera = {x: 0, y: 0};
textureSize = 32;
всё высчитывается верно
{x: 1, y: 2}
Однако для значений
coordinates = {x: 106, y: 64}
camera = {x: 0, y: 0};
textureSize = 32;
получаю результат
{x: 3, y: 2}
хотя ожидаю
{x: 4, y: 2}
Полагаю делается всё это совершенно иначе, однако беглое гугление результатов не дало, ибо с теорией большие проблемы... =(