public static void SetFade(ScreenFadeState fadeAction, float speed) { screenFadeState = fadeAction; fadeSpeed = speed; switch (screenFadeState) { case ScreenFadeState.IdleBlack: alphaValue = 1.0f; break; case ScreenFadeState.FadeFromBlack: break; case ScreenFadeState.FadeToBlack: break; case ScreenFadeState.IdleFaded: alphaValue = 0.0f; break; } }
public void Update(GameTime gameTime) { currentScreen.Update(gameTime); switch (screenTransitionState) { case ScreenTransitionState.Idle: break; case ScreenTransitionState.CurrentScreenOut: if (screenFadeState == ScreenFadeState.IdleBlack) { if (nextScreen == mapScreen && previousScreen == battleScreen) { currentScreen = nextScreen; UnloadScreen(battleScreen); previousScreen = battleScreen; GameClass.CurrentGameCamera.Position = GlobalGameInfo.PreviousMapCameraPosition; GlobalGameInfo.CurrentEnemyInBattle.CurrentAction = MapCharacterAction.Death; } else { UnloadScreen(currentScreen); currentScreen = nextScreen; currentScreen.LoadContent(); } screenTransitionState = ScreenTransitionState.NewScreenIn; } break; case ScreenTransitionState.NewScreenIn: if (ScreenManager.CurrentFadeState != ScreenFadeState.IdleFaded) { if (ScreenManager.CurrentFadeState != ScreenFadeState.FadeFromBlack) { ScreenManager.SetFade(ScreenFadeState.FadeFromBlack, fadeSpeed); } } else { screenTransitionState = ScreenTransitionState.Idle; if (currentScreen == mapScreen && previousScreen == battleScreen) { MapScreen.battleTriggered = false; GameClass.SoundManager.PlaySoundEffect("Audio/enemyDeath"); GameClass.SoundManager.StopBackgroundMusic(); GameClass.SoundManager.SetBackgroundMusic(mapScreen.CurrentMapStageSection.BackgroundMusicFileName, true); GameClass.SoundManager.PlayBackgroundMusic(); } } break; } switch (screenFadeState) { case ScreenFadeState.FadeFromBlack: if (alphaValue > 0.0f) { alphaValue -= fadeSpeed; } else { screenFadeState = ScreenFadeState.IdleFaded; } break; case ScreenFadeState.FadeToBlack: if (alphaValue < 1.0f) { alphaValue += fadeSpeed; } else { screenFadeState = ScreenFadeState.IdleBlack; } break; } fadeColor = new Color(new Vector4(1.0f, 1.0f, 1.0f, alphaValue)); }