0

我最近将等轴测图的显示样式从交错转换为菱形,但我无法弄清楚瓷砖拾取过程。

我很清楚有关该主题的其他现有线程,并且我阅读了所有这些线程,但我还没有找到解决方案(这些天我的注意力一团糟)。

我正在使用一个非常基本的系统,该系统包括遍历所有图块并选择鼠标指向的图块(例如 Map.Tile.Intersects(mouse.Rect) ),然后借助我选择的颜色图正确的瓷砖。

但我不喜欢这个系统,因为与我看到和不理解的一些数学解决方案相比,它的效率非常低。

所以这是我用来创建地图的代码:

int x = 128 * j;
int y = 64 * i;
int isoX = (6 * 64) + (x - y);
int isoY = (x + y) / 2;

128 是 tileWidth , 64 tileHeight 和 6 * 64 是 xOffset

坐标是这样的:

在此处输入图像描述

有人可以给我一些提示或解释我应该做什么吗?
谢谢你。

4

1 回答 1

2

如果我们将您的公式放入方程组中:

isoX = 6 * 64 + 128 * j - 64 * i
isoY = 128 / 2 * j + 64 / 2 * i

我们可以很容易地反转矩阵并得到方程:

i = -1/128 * isoX + 1/64  * isoY + 3
j =  1/256 * isoX + 1/128 * isoY - 3/2
于 2013-10-14T08:57:27.823 回答