本文整理汇总了C#中Cluster.GetNeighbours方法的典型用法代码示例。如果您正苦于以下问题:C# Cluster.GetNeighbours方法的具体用法?C# Cluster.GetNeighbours怎么用?C# Cluster.GetNeighbours使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cluster
的用法示例。
在下文中一共展示了Cluster.GetNeighbours方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FindConnections
void FindConnections(Portal portal, Cluster cluster, bool oriented)
{
Heap<Tile> queue = new Heap<Tile> (Cluster.size * Cluster.size);
HashSet<Tile> visited = new HashSet<Tile> ();
int pcount = cluster.GetPortals ().Count - 1;
foreach (Tile t in portal.GetPortalTiles()) {
t.distance = 0;
queue.Add (t);
}
while (queue.size () > 0 && pcount > 0) {
Tile current = queue.RemoveFirst ();
visited.Add (current);
Portal newPortal = current.GetPortal ();
if (newPortal != null && newPortal != portal) {
if (!portal.ConnectedTo (newPortal) && current.distance>0) {
if (!oriented) {
Portal.Connect (portal, newPortal, current.distance);
} else {
portal.AddNeighbour (newPortal, current.distance);
}
pcount--;
}
}
foreach (Tile nb in cluster.GetNeighbours(current)) {
if (nb == null || nb.cost == 255 || visited.Contains (nb))
continue;
nb.distance = current.distance + 1;
if (!queue.Contains (nb))
queue.Add (nb);
}
}
}