public void Update(GameTime gameTime) { if (ActiveScene.GetType().Name == "MenuScene") { MenuItemSprite s = ActiveScene.AllTheSpritesWithinTheScene.OfType <MenuItemSprite>().FirstOrDefault(x => x.Bounds.Contains(InputEngine.MousePosition) && InputEngine.IsMouseLeftClick()); if (s != null) { if (s.SpriteID == "MI1") { PreviousScene = ActiveScene; ActiveScene = AllScenes.Pop(); AllScenes.Push(PreviousScene); } else if (s.SpriteID == "MI2") { PreviousScene = ActiveScene; ActiveScene = CreateHighscoreScene(); AllScenes.Push(PreviousScene); } else if (s.SpriteID == "MI3") { Helper.CurrentGame.Exit(); } } } else if (InputEngine.IsKeyPressed(ChangeSceneKey)) { if (ActiveScene.GetType().Name == "PlayScene") { PreviousScene = ActiveScene; ActiveScene = AllScenes.Pop(); AllScenes.Push(PreviousScene); } else if (ActiveScene.GetType().Name == "HighscoreScene") { ActiveScene = AllScenes.Pop(); } } if (ActiveScene.GetType().Name == "PlayScene") { ActiveScene.Update(gameTime); PlayScene playScene = (PlayScene)ActiveScene; if (playScene.Gameover) { ActiveScene = CreateHighscoreScene(); } } }
public SceneManager CreateScenes() { SceneManager sceneManager = new SceneManager(); sceneManager.AllScenes = new Stack <IScene>(); try { MenuScene menuScene = new MenuScene(); menuScene.BackgroundTextureKey = "menu"; menuScene.AllTheSpritesWithinTheScene = new List <IBaseSprite>(); MenuItemSprite menu1 = new MenuItemSprite("MI1", "Play", "rectangle", new Vector2(100, 100)); MenuItemSprite menu2 = new MenuItemSprite("MI2", "HighScores", "rectangle", new Vector2(100, 200)); MenuItemSprite menu3 = new MenuItemSprite("MI3", "Exit", "rectangle", new Vector2(100, 300)); menuScene.AllTheSpritesWithinTheScene.Add(menu1); menuScene.AllTheSpritesWithinTheScene.Add(menu2); menuScene.AllTheSpritesWithinTheScene.Add(menu3); sceneManager.ActiveScene = menuScene; PlayScene playScene = new PlayScene(); playScene.BackgroundTextureKey = "play"; playScene.AllTheSpritesWithinTheScene = new List <IBaseSprite>(); playScene.Player = new PlayerSprite(); playScene.Player = CreatePlayer(); Helper.currentPlayer = playScene.Player; playScene.AllTheSpritesWithinTheScene.Add(playScene.Player); playScene.Collectables = new List <Collectable>(); playScene.Collectables = CreateCollectables(Helper.random.Next(10, 20)); playScene.AllTheSpritesWithinTheScene.AddRange(playScene.Collectables); playScene.AllSpawnPoints = new List <SpawnPoint>(); playScene.AllSpawnPoints = CreateSpawnPoints(); playScene.AllTheSpritesWithinTheScene.AddRange(playScene.AllSpawnPoints); playScene.AllDespawnPoints = new List <DespawnPoint>(); playScene.AllDespawnPoints = CreateDespawnPoints(); playScene.AllTheSpritesWithinTheScene.AddRange(playScene.AllDespawnPoints); playScene.AllEnemies = new Queue <EnemySprite>(); playScene.AllEnemies = CreateEnemies(); playScene.AllTheSpritesWithinTheScene.AddRange(playScene.AllEnemies); sceneManager.AllScenes.Push(playScene); } catch (Exception e) { Console.WriteLine("Error while creating Scenes : {0}", e.Message); } return(sceneManager); }