如何存储多个连接的路点

How to store multi connected waypoints

本文关键字:连接 何存储 存储      更新时间:2023-09-26

我正在尝试在网格上创建一个基本的2D道路系统。目前,我有一个列表,但他们没有相互连接。

我陷入困境的部分是如何构建数据和存储数据,以便我知道哪个航路点指向哪个航路点(多个航路点可以连接到任何其他航路点(。

所以目前,如果你认为我有这个作为我的数据:

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位置,以及可能连接到它们的航路点。

道路网络可以用邻接列表表示。基本上,每个点都会得到一个列表(可以通过数组实现(,其中包含可以从中访问的索引。在您的示例中,这可以表示如下。

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]};