From fd6fa4e5cebbe3edb65d50c78dcc8a97ce98ce64 Mon Sep 17 00:00:00 2001 From: aldrikboy Date: Mon, 11 Dec 2017 22:02:13 +0100 Subject: First commit --- Penguloon/SceneManager.cs | 71 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 Penguloon/SceneManager.cs (limited to 'Penguloon/SceneManager.cs') 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; } + + /// + /// 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; + + default: + return; + } + } + + /// + /// 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; + + default: + return; + } + } + } +} \ No newline at end of file -- cgit v1.2.3-70-g09d2