Как изменить местоположение мыши в изометрической тайловой карте?

Итак, мне удалось написать первую часть (алгоритм) для вычисления позиции каждого тайла, где он должен быть размещен при рисовании этой карты (см. Ниже). Однако мне нужно иметь возможность преобразовать местоположение мыши в соответствующую ячейку, и я почти рвал волосы, потому что не мог понять, как получить ячейку из местоположения мыши. Меня беспокоит, что это связано с довольно сложной математикой или чем-то вроде того, что я просто не могу заметить.
Например, если позиция мыши - 112; 35 , как мне вычислить / преобразовать ее, чтобы получить, что ячейка находится в этой позиции 2; 3 ? Может быть, здесь есть какой-нибудь действительно хороший программист с математическим мышлением, который поможет мне в этом, или кто-то, кто знает, как это сделать или может дать некоторую информацию?

enter image description here

var cord:Point = new Point();
cord.x = (x - 1) * 28 + (y - 1) * 28;
cord.y = (y - 1) * 14 + (x - 1) * (- 14);

Кстати о карте, каждой ячейке (прозрачная плитка 56x28 ] пикселей) размещается в центре предыдущей ячейки (или в нулевой позиции для ячейки 1; 1), выше - это код, который я использую для преобразования ячейки в позицию. Я пробовал много вещей и вычислений для определения положения в ячейку, но каждый из них не удался.

Изменить: После прочтения большого количества информации кажется , что использование цветовой карты вне экрана (где цвета отображаются на плитки) является самым быстрым и эффективным решением?

7
задан Rihards 2 August 2011 в 18:28
поделиться