本文整理汇总了C++中PathNode::getDistance方法的典型用法代码示例。如果您正苦于以下问题:C++ PathNode::getDistance方法的具体用法?C++ PathNode::getDistance怎么用?C++ PathNode::getDistance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PathNode
的用法示例。
在下文中一共展示了PathNode::getDistance方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AddChild
void Pathfinding::AddChild(PathNode childNode, PathNode* currNode, PathNode* goal, Direction::DIRECTION facing)
{
int col = round(childNode.xPos + 14.5f) - 1;
int row = (MazeLoader::GetMazeHeight()) - round(childNode.zPos + 15.5f);
//Check surroundings for walkable tiles and if in closed list
if ((col >= 0 && row >= 0) && ((UINT)col <= MazeLoader::GetMazeWidth() && (UINT)row <= MazeLoader::GetMazeHeight()))
{
if (!MazeLoader::IsBlocked(row, col))
{
if (!InClosedList(&childNode))
{
childNode.facing = facing;
int g = currNode->gCost + childNode.getDistanceFromParent(childNode, currNode);
int f = g + childNode.getDistance(goal, childNode.xPos, childNode.zPos);
//If it's already in the open list
if (InOpenList(&childNode))
{
if (childNode.gCost > g)
{
childNode.setParent(currNode);
childNode.fCost = f;
childNode.gCost = g;
}
}
else
{
//Add it to the openList with the current node as the parent
PathNode* newChildNode = new PathNode(childNode.xPos, childNode.zPos, g, f, currNode, facing);
mOpenList.push_back(newChildNode);
}
}
}
}
}