本文整理汇总了C++中AStarNode::GetAdjacentNodes方法的典型用法代码示例。如果您正苦于以下问题:C++ AStarNode::GetAdjacentNodes方法的具体用法?C++ AStarNode::GetAdjacentNodes怎么用?C++ AStarNode::GetAdjacentNodes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AStarNode
的用法示例。
在下文中一共展示了AStarNode::GetAdjacentNodes方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ProcessPath
void AStar::ProcessPath()
{
// If the list is empty, there is no path so don't do anything
if(m_openList.empty() || m_goalFound)
{
return;
}
// Get the node with lowest F from the openList
AStarNode *currentNode = GetNextNode();
// Are we finished? Was the goal found?
if(currentNode->GetPosition() == m_goal)
{
// We're home! Fill the pathqueue
AStarNode *getPath;
for(getPath = currentNode; getPath != NULL; getPath = getPath->GetParent())
{
m_path.push_back(sf::Vector2f(getPath->GetPosition()));
}
// We don't want to target the starting node so delete it
m_path.pop_back();
m_goalFound = true;
return;
}
else
{
// Not finished yet, continue the search
// Get adjacent nodes to the currentNode
std::vector<AStarNode> nodeAdjacent = currentNode->GetAdjacentNodes();
// Process every adjacent node
for(unsigned int i = 0; i < nodeAdjacent.size(); i++)
{
ExamineNode(nodeAdjacent[i]);
}
}
}