42 lines
2.5 KiB
Plaintext
42 lines
2.5 KiB
Plaintext
|
This shows in which order input handling, physics computations and
|
||
|
other kart related items are updated in each frame.
|
||
|
|
||
|
main_loop:
|
||
|
getDT() : Determine nexts DT --> simulation
|
||
|
is [T, T+DT] with T=now.
|
||
|
RewindManager::addNextTimeStep() : Adds a default TimeStepInfo entry to the
|
||
|
RewindQueue which will store events for the
|
||
|
current time step (e.g. key presses, and
|
||
|
network data).
|
||
|
irr_driver::update() : Rendering and input handling.
|
||
|
Controller::action() : Store user action in m_controls of
|
||
|
kart. Clients send event to server.
|
||
|
RaceEventManager::update() : A thin wrapper around world used in networked
|
||
|
races.
|
||
|
RewindManager::playEventsTill() : Plays all events in [T, T+DT]: copies unhandled
|
||
|
network events that must be handled at the
|
||
|
current time to the current TimeStepInfo. Can do
|
||
|
complete rewind and replay till T is reached again!
|
||
|
World::updateWorld()
|
||
|
RewindManager::update() : Store current state on server if necessary and
|
||
|
broadcast it to clients.
|
||
|
Karts::update()
|
||
|
Moveable::update() : Copy physics data from bullet to STK.
|
||
|
updateSpeed() : Get physics speed and set it in kart.
|
||
|
Controller::update() : Set kart steering based on user/AI input.
|
||
|
Slipstream::update() : call Kart::handleZipper if required.
|
||
|
updatePhysics()
|
||
|
HandleStartBoost : Trigger boost if required.
|
||
|
updateEnginePower...() : Sets engine power/brakes for bullet vehicle.
|
||
|
Skidding::update() : Update skidding values (which will
|
||
|
affect steering).
|
||
|
setSteering : Sets the bullet steering based on
|
||
|
kart's current steering.
|
||
|
updateSliding() : Test for sliding which can reduce the wheels
|
||
|
friction/grip, causing the physics to slide.
|
||
|
MaxSpeed::update() : Cap speed of kart if kart is too fast.
|
||
|
!physicsafter : !Print debug values
|
||
|
Physics::update() : Time step bullet as often as necessary. This is
|
||
|
using the steering etc information set above.
|
||
|
ProtocolManager::update() : Synchronous protocol updates.
|
||
|
World::updateTime() : Increase time from T to T+DT.
|