我正在尝试在网格上创建基本的2D道路系统。目前我有一个staight行列表,但它们没有相互连接。
我坚持的部分是我如何构建数据并存储我的数据,因此我知道哪个路点指向哪个路点(多个路点可以连接到任何其他路点)。
所以目前如果您想象我将此作为我的数据:
var point = [];
point[0] = {'x':2,'y':6};
point[1] = {'x':2,'y':8};
point[2] = {'x':6,'y':9};
point[3] = {'x':7,'y':2};
现在假设点0连接到点2和3.点1连接到点3。
存储这些点链接的信息的最佳方法是什么,也允许我查找并获得与连接的航点相关的对象的属性(这对将来的寻路主要有用)。
例如,我可能需要在给定的x或y位置找到一个航点。或者我可能想要获得连接到例如点1的相关航点数据,例如它们的x和y位置以及航点也可以连接到它们。
答案 0 :(得分:1)
道路网络可以用adjacency list表示。基本上,每个点都将给出一个列表(可以由数组实现),其中包含可以从中获得的索引。在您的示例中,这可以表示如下。
var point = [];
point[0] = {'x':2,'y':6, 'neighbors':[2,3]};
point[1] = {'x':2,'y':8, 'neighbors':[3]};
point[2] = {'x':6,'y':9, 'neighbors':[0]};
point[3] = {'x':7,'y':2, 'neighbors':[0,1]};