/// <summary> /// Ruft die Update ()-Methode des aktuellen Screens auf. /// </summary> protected override void Update(GameTime time) { if (Screens == null) { InitializeScreens(); } try { updateResolution(); // falls der Screen gewechselt werden soll... IScreen current = Screens.Peek(); IScreen next = current.NextScreen; if (current != next && !(current is ErrorScreen)) { if (ScreenTransitionEffect != null && !SkipNextScreenEffect) { next.PostProcessingEffect = ScreenTransitionEffect(current, next); } SkipNextScreenEffect = false; current.BeforeExit(next, time); current.NextScreen = current; next.NextScreen = next; if (next.ClearScreenHistory) { Screens.Clear(); } Screens.Push(next); next.Entered(current, time); } // Rufe Update () auf dem aktuellen Screen auf Screens.Peek().Update(time); // base method base.Update(time); } catch (Exception ex) { if (ErrorScreenEnabled) { // Error Screen ShowError(ex); } else { throw; } } }