void UpdateState()
{
  
  StateIndex dstate = discretizeState(carState);
  ActionIndex a = piStar[dstate];
  

  double continuousAction[2];
  undiscretizeAction(a, continuousAction);
  
  simulate(carState, continuousAction, carState);
  carStateX += carState[STATE_VX]*DT;
  
  // display the car at position =  carStateX, carState[STATE_Y]
  // with orientation = carState[STATE_THETA]
  UpdateCar(carStateX, carState[STATE_Y], carState[STATE_THETA]);
 
}
Example #2
0
void StartProgram(RenderWindow & window, Car & car, Physics & physics, const RectangleShape & ground)
{
	Clock frameClock;
	int timeSinceLastFrame;

	while (window.isOpen())
	{
		timeSinceLastFrame = frameClock.getElapsedTime().asMilliseconds();
		ProcessEvents(window);
		if (timeSinceLastFrame >= TIME_PER_FRAME)
		{
			frameClock.restart();

			ComputePhysics(physics);
			UpdateCar(car, physics);

			window.clear(Color::White);
			Draw(window, car, ground);
			window.display();
		}
	}
}