void PathFinding::FindPath(sf::Vector2f currentPos, sf::Vector2f targetPos) {
	if(!m_initializedStartGoal) {
		for(int i = 0; i < m_openList.size(); i++) {
			delete m_openList.at(i);
		}
		m_openList.clear();
		
		for(int i = 0; i < m_visitedList.size(); i++) {
			delete m_visitedList.at(i);
		}
		m_visitedList.clear();

		for(int i = 0; i < m_pathToGoal.size(); i++) {
			delete m_pathToGoal.at(i);
		}
		m_pathToGoal.clear();

		SearchCell start;
		start.m_xcoord = currentPos.x;
		start.m_ycoord = currentPos.y;

		SearchCell goal;
		goal.m_xcoord = targetPos.x;
		goal.m_ycoord = targetPos.y;

		SetStartAndGoal(start, goal);
		m_initializedStartGoal = true;
	}

	if(m_initializedStartGoal) {
		ContinuePath();
	}
}
Beispiel #2
0
void CPathFinding::FindPath(Vector3 currentPos, Vector3 targetPos)
{
	if (!m_initialisedStartGoal)
	{
		for (int i = 0; i < m_openList.size(); i++)
		{
			delete m_openList[i];
		}
		m_openList.clear();

		for (int i = 0; i < m_visitedList.size(); i++)
		{
			delete m_visitedList[i];
		}
		m_visitedList.clear();

		for (int i = 0; i < m_pathToGoal.size(); i++)
		{
			delete m_pathToGoal[i];
		}
		m_pathToGoal.clear();

		// Initialise start
		CSearchCell start;
		start.m_xCoord = currentPos.x;
		start.m_zCoord = currentPos.z;

		// Initialise goal
		CSearchCell goal;
		goal.m_xCoord = targetPos.x;
		goal.m_zCoord = targetPos.z;

		SetStartAndGoal(start, goal);
		m_initialisedStartGoal = true;
	}
	if (m_initialisedStartGoal)
	{
		ContinuePath();
	}
}
void PathFinding::FindPath(Vector3 currentPos, Vector3 targetPos) {
	if (!m_initalizedStartGoal) {
		for (unsigned int i = 0; i < m_openList.size(); i++) delete m_openList[i];
		m_openList.clear();
		for (unsigned int i = 0; i < m_visitedList.size(); i++) delete m_visitedList[i];
		m_visitedList.clear();
		for (unsigned int i = 0; i < m_pathToGoal.size(); i++) delete m_pathToGoal[i];
		m_pathToGoal.clear();

		// INIT START
		SearchCell start;
		start.m_x_coord = (int)(currentPos.x / CELL_SIZE);
		start.m_y_coord = (int)(currentPos.y / CELL_SIZE);

		// INIT GOAL
		SearchCell goal;
		goal.m_x_coord = (int)(targetPos.x / CELL_SIZE);
		goal.m_y_coord = (int)(targetPos.y / CELL_SIZE);

		SetStartAndGoal(start, goal);
		m_initalizedStartGoal = true;
	}
	if (m_initalizedStartGoal) ContinuePath();
}