我试图围绕一个立方体实现A *寻路,立方体由6个网格组成,并保持简单我有4个方法GetXPlus,GetXMinus,GetYPlus,GetYMinus。每种方法检查下一个图块是否在当前网格空间内,如果它没有切换到适当的网格。A *寻找多个网格
我遇到的问题是,当试图从当前网格翻转的另一个网格中获取一个图块时,返回的图块位于另一面。有没有一种方法或方法可以让我避免为每一个单独的网格和方向编写独特的逻辑?
为了帮助阐明我的问题,在此我起源于(紫色)网格和使用GetXPlus方法:
我目前的执行情况进行SNIPPIT(每格为64 64 ):
public Tile GetXPlus(int currentX, int currentY)
{
var newX = currentX + 1;
var tile = GetTile(newX , currentY);
if(newX > 64) //Get adjacent XPlus Grid
{
currentGrid = SetCurrentGrid(XPlusGridIndex);
tile = GetTile(newX - 64, currentY);
}
return tile;
}
背景
此实现Ø从这里建议的另一个问题的绝佳答案中得到了很好的解答:https://gamedev.stackexchange.com/questions/53866/pathfinding-on-a-uneven-planetary-surface
刚刚意识到有我的照片略有误差,在立方体的看法,蓝方的X和Y方向应该是相同的net view –
一个有趣的问题,我还没有在[我的回答认为](http://gamedev.stackexchange.com/questions/53866/pathfinding-on-a-uneven-planetary-surface)。 – MichaelHouse
听起来就像你只需要一个邻接矩阵,它描述了当你超出界限(或者改变为使用(x,y,z))时要走向哪个面。 – user7116