using Microsoft.Xna.Framework.Input.Touch; using Penguloon.Controls; using Penguloon.Scenes; namespace Penguloon { public static class SceneManager { public static SelectedScene SelectedScene { get; set; } = SelectedScene.Loading; public static SceneBase MenuScene { get; set; } public static SceneBase LevelSelectionScene { get; set; } public static SceneBase LoadingScene { get; set; } public static SceneBase GameScene { get; set; } public static SceneBase StatsScene { get; set; } public static SceneBase CreditsScene { get; set; } public static SceneBase SupportScene { get; set; } public static SceneBase ShopScene { get; set; } /// /// Initialize scene manager. /// public static void Initialize(Main main) { LoadingScene = new LoadingScene(main); } /// /// Draw selected scene. /// /// Delta time. public static void Draw(float deltaTime) { switch (SelectedScene) { case SelectedScene.Menu: MenuScene.Draw(deltaTime); break; case SelectedScene.Ingame: GameScene.Draw(deltaTime); break; case SelectedScene.LevelSelection: LevelSelectionScene.Draw(deltaTime); break; case SelectedScene.Loading: LoadingScene.Draw(deltaTime); break; case SelectedScene.Stats: StatsScene.Draw(deltaTime); break; case SelectedScene.Credits: CreditsScene.Draw(deltaTime); break; case SelectedScene.Support: SupportScene.Draw(deltaTime); break; case SelectedScene.Shop: ShopScene.Draw(deltaTime); break; default: return; } Alert.Draw(deltaTime); } /// /// Update selected scene. /// /// Delta time. /// Finger touch points. public static void Update(float deltaTime, TouchLocation[] touchLocations) { switch (SelectedScene) { case SelectedScene.Menu: MenuScene.Update(deltaTime, touchLocations); break; case SelectedScene.Ingame: GameScene.Update(deltaTime, touchLocations); break; case SelectedScene.LevelSelection: LevelSelectionScene.Update(deltaTime, touchLocations); break; case SelectedScene.Loading: LoadingScene.Update(deltaTime, touchLocations); break; case SelectedScene.Stats: StatsScene.Update(deltaTime, touchLocations); break; case SelectedScene.Credits: CreditsScene.Update(deltaTime, touchLocations); break; case SelectedScene.Support: SupportScene.Update(deltaTime, touchLocations); break; case SelectedScene.Shop: ShopScene.Update(deltaTime, touchLocations); break; default: return; } Alert.Update(deltaTime); } } }