
40
|
第
1
章
你可以从网格中删除节点。注意,如果节点没有连接到其他节点的话,这个节点不
属于这个网格的一部分。连接节点调用
connectToAdjacentNodes
方法:
func add<NodeType>(node: NodeType, to graph: GKGridGraph<NodeType>) {
//
如果在该位置已经有节点,先删除节点
if let existingNode = graph.node(atGridPosition: node.gridPosition) {
graph.remove([existingNode])
}
//
添加节点,并将其连接到网格的其他节点
graph.connectToAdjacentNodes(node: node)
}
当你向网格中添加节点时,你需要指定其位置:
//
添加两个节点
let playerNode = GameNode(name: "Player", gridPosition: [0,2])
let exitNode = GameNode(name: "Exit", gridPosition: [0,3])
add(node: playerNode, to: graph)
add(node: exitNode, to: graph)
你还可以从表格中查找指定位置的节点:
graph.node(atGridPosition: [0,2])?.name // "Player"
最后,你可以获取表格上的所有节点,并根据某个属性来进行筛选: ...