Instance Method

unlockConnectionFromNode:toNode:

Allows the specified nodes to be disconnected due to the addition of obstacles.

Declaration

- (void)unlockConnectionFromNode:(NodeType)startNode toNode:(NodeType)endNode;

Parameters

startNode

A node in the graph.

endNode

Another node in the graph to which the node startNode is directly connected.

Discussion

By default, adding obstacles with the addObstacles: method disconnects pairs of nodes if the direct path between them intersects an obstacle. This behavior ensures that using the findPathBetweenNodes:toNode: method does not result in a path through the graph that crosses obstacles.

With certain nodes, such as those you add with the connectNodeUsingObstacles: method to represent the position of a game character or objective, this behavior might not be desirable. For example, if you add an obstacle that overlaps a character’s current position, the character should be able to find a path that exits the obstacle. In this case, use the lockConnectionFromNode:toNode: method to protect the connection between the character’s node and a neighboring node from being automatically destroyed. If you later rearrange nodes so that such protection is no longer necessary, use the unlockConnectionFromNode:toNode: method to remove it.

See Also

Locking Node Connections

- lockConnectionFromNode:toNode:

Prevents the specified nodes from being disconnected due to the addition of obstacles.

- isConnectionLockedFromNode:toNode:

Returns a Boolean value indicating whether the specified nodes are protected from disconnection due to the addition of obstacles.