summaryrefslogtreecommitdiff
path: root/Penguloon/SceneManager.cs
diff options
context:
space:
mode:
authoraldrikboy <aldrikboy@gmail.com>2017-12-11 22:02:13 +0100
committeraldrikboy <aldrikboy@gmail.com>2017-12-11 22:02:13 +0100
commitfd6fa4e5cebbe3edb65d50c78dcc8a97ce98ce64 (patch)
tree8950f6b9023e0b47e22e1cd4869ab76de0803f4c /Penguloon/SceneManager.cs
parentc4c0f3c887d627b6432551e96009c7aeecd4cdd8 (diff)
First commit
Diffstat (limited to 'Penguloon/SceneManager.cs')
-rw-r--r--Penguloon/SceneManager.cs71
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