Exemple #1
0
        /// <summary>
        /// Update game
        /// </summary>
        public void Update(double deltaT)
        {
            // add new game objects
            gameObjects.UnionWith(pendingNewGameObjects);
            pendingNewGameObjects.Clear();

            if (keyPressed.Contains(Keys.P) && state == GameState.Play)
            {
                state = GameState.Pause;
                ReleaseKey(Keys.P);
                System.Threading.Thread.Sleep(1);
            }

            if (keyPressed.Contains(Keys.P) && state == GameState.Pause)
            {
                state = GameState.Play;
                ReleaseKey(Keys.P);
            }

            if (state == GameState.Play)
            {
                // Update each game object
                foreach (GameObject gameObject in gameObjects)
                {
                    gameObject.Update(this, deltaT);
                }

                if (!PlayerShip.IsAlive())
                {
                    state = GameState.Lost;
                }

                if (!this.enemies.IsAlive())
                {
                    state = GameState.Win;
                }
            }

            if (state == GameState.Lost || state == GameState.Win)
            {
                if (keyPressed.Contains(Keys.Space))
                {
                    ClearGame();
                    InitGame(gameSize);
                    ReleaseKey(Keys.Space);
                }
            }

            // remove dead objects
            gameObjects.RemoveWhere(gameObject => !gameObject.IsAlive());
        }
Exemple #2
0
 /// <summary>
 /// Check if the game is over and update the state
 /// Look if the ennemy block is in the bunkers line
 /// Look if still ennemy alive
 /// Look if player still alive
 /// </summary>
 private void CheckEndGame()
 {
     foreach (var ship in enemies.EnemyShips)
     {
         if (ship.Position.Y >= bunkerPosition - 20)
         {
             playerShip.Lives = 0;
         }
     }
     if (!enemies.IsAlive())
     {
         state = GameState.Win;
     }
     if (!playerShip.IsAlive())
     {
         state = GameState.Lost;
     }
     if (state != GameState.Pause && state != GameState.Play && keyPressed.Contains(Keys.Space))
     {
         gameObjects.Clear();
         InitGame(gameSize);
         ReleaseKey(Keys.Space);
     }
 }