КАК определить координаты Клика по Псевдотрехмерной плоскости

КАК определить координаты Клика по Псевдотрехмерной плоскости
Делаю игру с псевдотрехмерной графикой. Посути обычное 2D но с Z координатой (которая немного смещает рисуной вверх/ввниз по Y и создает илюзию обема) а так это абсолютно плоская игра в которой по особому отрисованы плоские текстуры

Сама карта игры - это сетка 1000 на 1000 квадратов .Вид всегда под одним углом, некаких поворотов . Мне нужно определить в какой из этих квадратов кликнули мышкой
Зная координаты квадрата который находится в центре экрана ( координаты "камеры") , а также координаты клика мышки можно легко узнать куда кликнули( игровые координаты квадрата в который засандалили мышкой)

ClickLocation_X = Kamera.cameraX + (Click.Location.X + Click.Location.Y) / MAP.blocksize; //+ popravkavo4nije koordinati (no eto nevazno)
ClickLocation_Y = Kamera.cameraY - (Click.Location.X - Click.Location.Y) / MAP.blocksize ;

Однако когда я добавил в игру третее измерение (координату Z) возникли ПРОБЛЕМЫ.
Некогда ровная сетка квадратов теперь стала кривоватой и как определить координаты теперь ваще непонятно

Походу если кликнули в синий квадрат (подсчитывая вышеуказаным методом), то мне нужно еще проверить нижние черные квадраты(их Z координату) чтобы убедится что они неподнялись слишком высоко и не перекрывают облать в которую кликнули.

Правильно ли я расуждаю или это все нада расчитывать совсем по другому принцыпу?

  • Ну ту 2D в чистом виде. Для упрощения задачи можно анализировать только квадрат под текущим и определять есть там чубрик или нет.
    Но вообще, для 2D - варианта можно не заморачиваться со сложным рельефом и для рельефа использовать всегда целое число клеток.

    Или переходить в настоящее 3D.