/// <summary>Runs this instance.</summary> public void Run() { #region Awake() InputSystem.Awake(); SceneSystem.Awake(); PhysicsSystem.Awake(); RenderSystem.Awake(); #endregion #region Start() InputSystem.Start(); SceneSystem.Start(); PhysicsSystem.Start(); RenderSystem.Start(); #endregion while (IsRunning) { Setting.Time.SyncFixedDeltaTime(); if (Setting.Time.IsNewFrame()) { Setting.Time.UpdateTimeStep(); for (int i = 0; i < Setting.Time.MaximunAllowedTimeStep; i++) { #region BeforeUpdate() InputSystem.BeforeUpdate(); SceneSystem.BeforeUpdate(); PhysicsSystem.BeforeUpdate(); RenderSystem.BeforeUpdate(); #endregion #region Update() InputSystem.Update(); SceneSystem.Update(); PhysicsSystem.Update(); RenderSystem.Update(); #endregion #region AfterUpdate() InputSystem.AfterUpdate(); SceneSystem.AfterUpdate(); PhysicsSystem.AfterUpdate(); RenderSystem.AfterUpdate(); #endregion } #region FixedUpdate() InputSystem.FixedUpdate(); SceneSystem.FixedUpdate(); PhysicsSystem.FixedUpdate(); RenderSystem.FixedUpdate(); #endregion #region DispatchEvents() InputSystem.DispatchEvents(); SceneSystem.DispatchEvents(); PhysicsSystem.DispatchEvents(); RenderSystem.DispatchEvents(); #endregion Setting.Time.CounterFrames(); } Setting.Time.UpdateFixedTime(); } #region Exit() InputSystem.Exit(); SceneSystem.Exit(); PhysicsSystem.Exit(); RenderSystem.Exit(); #endregion }