diff options
Diffstat (limited to 'Penguloon/SceneManager.cs')
| -rw-r--r-- | Penguloon/SceneManager.cs | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/Penguloon/SceneManager.cs b/Penguloon/SceneManager.cs new file mode 100644 index 0000000..7ea296a --- /dev/null +++ b/Penguloon/SceneManager.cs @@ -0,0 +1,71 @@ +using Microsoft.Xna.Framework.Input.Touch; +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; } + + /// <summary> + /// Initialize scene manager. + /// </summary> + public static void Initialize(Main main) + { + LoadingScene = new LoadingScene(main); + } + + /// <summary> + /// Draw selected scene. + /// </summary> + /// <param name="deltaTime">Delta time.</param> + 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; + + default: + return; + } + } + + /// <summary> + /// Update selected scene. + /// </summary> + /// <param name="deltaTime">Delta time.</param> + /// <param name="touchLocations">Finger touch points.</param> + 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; + + default: + return; + } + } + } +}
\ No newline at end of file |
