//Method to remove the victory overlay public void RemoveGameWonOverlay(GameWonOverlay o, Canvas c) { //Remove overlay objects from the screen c.Children.Remove(o.background); c.Children.Remove(o.VictorySprite); c.Children.Remove(o.again); c.Children.Remove(o.menu); }
public void GameVictory() { FreezePlayer = true; GameLost = false; GameWon = true; gameWonOverlay = new GameWonOverlay(); gameWonOverlay.againIsPressed += OnPressedOnRestart; gameWonOverlay.pressedOnMenu += OnPressedOnMenu; AddGameWonOverlay(gameWonOverlay, GameCanvas); playing = false; GameTimer.Pause(); }
public void OnPressedOnRestart(object source, EventArgs e) { PlayAgain(); if (pauseOverlay != null) { RemovePauseOverlay(pauseOverlay, GameCanvas); pauseOverlay = null; } else if (gameOverOverlay != null) { RemoveGameOverOverlay(gameOverOverlay, GameCanvas); gameOverOverlay = null; } else { RemoveGameWonOverlay(gameWonOverlay, GameCanvas); gameWonOverlay = null; } }
//Method to add a victory overlat=y to the screen public void AddGameWonOverlay(GameWonOverlay o, Canvas c) { //Create audio player to play sound effect on game over SoundPlayer audio = new SoundPlayer(Properties.Resources.game_won_sound_effect); audio.Play(); //create background worker to sync audio playback with overlay var backgroundWorker = new BackgroundWorker(); backgroundWorker.DoWork += (s, e) => { Thread.Sleep(150); }; backgroundWorker.RunWorkerCompleted += (s, e) => { //Add everything to the screen Canvas.SetTop(o.background, o.backgroundY); Canvas.SetLeft(o.background, o.backgroundX); c.Children.Add(o.background); Panel.SetZIndex(o.background, 99); Canvas.SetTop(o.VictorySprite, o.VictorySpriteY); Canvas.SetLeft(o.VictorySprite, o.VictorySpriteX); c.Children.Add(o.VictorySprite); Panel.SetZIndex(o.VictorySprite, 99); Canvas.SetTop(o.again, o.againY); Canvas.SetLeft(o.again, o.againX); c.Children.Add(o.again); Panel.SetZIndex(o.again, 99); Canvas.SetTop(o.menu, o.menuY); Canvas.SetLeft(o.menu, o.menuX); c.Children.Add(o.menu); Panel.SetZIndex(o.menu, 99); }; backgroundWorker.RunWorkerAsync(); }