physics_order 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. This shows in which order input handling, physics computations and
  2. other kart related items are updated in each frame.
  3. main_loop:
  4. getDT() : Determine nexts DT --> simulation
  5. is [T, T+DT] with T=now.
  6. RewindManager::addNextTimeStep() : Adds a default TimeStepInfo entry to the
  7. RewindQueue which will store events for the
  8. current time step (e.g. key presses, and
  9. network data).
  10. irr_driver::update() : Rendering and input handling.
  11. Controller::action() : Store user action in m_controls of
  12. kart. Clients send event to server.
  13. RaceEventManager::update() : A thin wrapper around world used in networked
  14. races.
  15. RewindManager::playEventsTill() : Plays all events in [T, T+DT]: copies unhandled
  16. network events that must be handled at the
  17. current time to the current TimeStepInfo. Can do
  18. complete rewind and replay till T is reached again!
  19. World::updateWorld()
  20. RewindManager::update() : Store current state on server if necessary and
  21. broadcast it to clients.
  22. Karts::update()
  23. Moveable::update() : Copy physics data from bullet to STK.
  24. updateSpeed() : Get physics speed and set it in kart.
  25. Controller::update() : Set kart steering based on user/AI input.
  26. Slipstream::update() : call Kart::handleZipper if required.
  27. updatePhysics()
  28. HandleStartBoost : Trigger boost if required.
  29. updateEnginePower...() : Sets engine power/brakes for bullet vehicle.
  30. Skidding::update() : Update skidding values (which will
  31. affect steering).
  32. setSteering : Sets the bullet steering based on
  33. kart's current steering.
  34. updateSliding() : Test for sliding which can reduce the wheels
  35. friction/grip, causing the physics to slide.
  36. MaxSpeed::update() : Cap speed of kart if kart is too fast.
  37. !physicsafter : !Print debug values
  38. Physics::update() : Time step bullet as often as necessary. This is
  39. using the steering etc information set above.
  40. ProtocolManager::update() : Synchronous protocol updates.
  41. World::updateTime() : Increase time from T to T+DT.