我尝试创建等距地图编辑器,当我生成地图时,我偶然发现了这个问题:
http://postimg.org/image/atsqgu5on/
我生成的地图看起来像(A)方案,屏幕外有一些瓷砖。我必须在代码中更改以获得(B)-ish映射?
这是我用来在地图中创建单元格的代码。 (32是瓷砖高度和宽度)
for (int i = 0; i <this.Height; i++)
{
Map[i] = new Rectangle[Width];
miniMap[i] = new Rectangle[Width];
for (int j = 0; j < this.Width; j++)
{
int x = 32 * j;
int y = 32 * i;
int isoX = x - y;
int isoY = (x + y) / 2;
Map[i][j] = new Rectangle(isoX,isoY, 64, 64);
}
不知怎的,我知道问题在于:int isoX = x - y;但我不知道要改变什么才能得到我想要的结果。 谢谢你的帮助。
答案 0 :(得分:1)
这里的问题似乎是你的系统从顶部到右角开始构建多行瓷砖,然后工作到左下角。由于第一个图块的初始坐标是0,0,当它向左侧绘制子序列行时,它们很快就会从屏幕上消失。
对此最简单的解决方案就是右移x坐标,使其开始从区域中间绘制顶部瓷砖,同时记住我们希望瓷砖的中心位于区域的中心,而不是它的左上边缘。像
这样的东西int isox = (Width / 2) - (tileLength / 2) + x - y;