当前位置: 首页>>代码示例>>C++>>正文


C++ PathNode::getDistance方法代码示例

本文整理汇总了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);
				}
			}
		}
	}
}
开发者ID:bryanpope,项目名称:PuckMan3D,代码行数:36,代码来源:Pathfinding.cpp


注:本文中的PathNode::getDistance方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。