GKObstacleGraph
一个2D游戏世界,创建精确的寻路绕过障碍物的最小网络导航图。
概括
利用GKObstacle对象集合创建Obstacle Graph,使用这个graph进行寻路,你需要添加GKGraphNode2D对象代表你需要进行寻路的坐标点(例如角色当前位置和需要到达的终点),最后使用GKGraph父类的方法进行寻路。
与GKMeshGraph类不同的是,一个obstacle graph创建了最小的graph node网格,导致路径不光滑但是比较高效。
Topics
创建一个Graph(Creating a Graph)
- initWithObstacles:bufferRadius:nodeClass:
使用指定node类创建具有指定的障碍列表的graph。
+ graphWithObstacles:bufferRadius:nodeClass:
使用指定node类创建具有指定的障碍列表的graph。
- initWithObstacles:bufferRadius:
使用指定的障碍物列表初始化graph。
+ graphWithObstacles:bufferRadius:
使用指定的障碍物列表初始化graph。
障碍物相关方法(Working with Obstacles)
obstacles
graph中的障碍物列表,其中每个都描述了一个多边形形状的无法通行区域。
- addObstacles:
添加新的障碍物到graph中。
- removeObstacles:
从graph中移除指定的障碍物。
- removeAllObstacles
从graph中移除所有障碍物。
- nodesForObstacle:
返回graph中与障碍物对应的node组。
Node相关的方法(Working with Nodes)
- connectNodeUsingObstacles:
添加指定的node到graph中,创建相邻节点的连接而不创建通过障碍物的连接或者缓冲区域的连接。
- connectNodeUsingObstacles:ignoringObstacles:
添加指定的node到graph中,创建相邻节点的连接且忽略指定障碍物的区域。
- connectNodeUsingObstacles:ignoringBufferRadiusOfObstacles:
添加指定的node到graph中,创建相邻节点的连接且忽略指定障碍物周围的缓冲区域。
bufferRadius
障碍物四周边缘的空间,也被认定为无法通过的区域。
锁定Node连接(Locking Node Connections)
- lockConnectionFromNode:toNode:
防止由于增加了障碍物而断开了node间的连接。
- unlockConnectionFromNode:toNode:
允许指定的node由于增加了障碍物而断开连接。
- isConnectionLockedFromNode:toNode:
返回一个布尔值,指示一个指定的node是否在增加障碍物时断开连接被保护。
实例方法(Instance Methods)
- classForGenericArgumentAtIndex:
关系
继承
GKGraph