Exemple #1
0
        /// <summary>
        /// Update code of the program
        /// </summary>
        private void Update()
        {
            gameTime = clock.Restart();

            if (gameState == GameState.Ready)
            {
                readyTime += gameTime.AsSeconds();

                if (readyTime > 2f)
                {
                    gameState = GameState.Playing;
                }
            }
            else if (gameState == GameState.Playing)
            {
                pacman.Update(gameTime.AsSeconds(), grid);
                grid.Update(gameTime.AsSeconds(), pacman);
                blinky.Update(gameTime.AsSeconds(), grid, pacman, GhostNames.blinky);
                inky.Update(gameTime.AsSeconds(), grid, pacman, GhostNames.inky);
                pinky.Update(gameTime.AsSeconds(), grid, pacman, GhostNames.pinky);
                clyde.Update(gameTime.AsSeconds(), grid, pacman, GhostNames.clyde);

                if (pacman.IsDead)
                {
                    Score.LostLife();
                    if (Score.GameOver)
                    {
                        gameState = GameState.Lose;
                    }
                    else
                    {
                        Init_Game();
                    }
                }
                else if (Score.IsBoardCleared())
                {
                    gameState = GameState.Win;
                }
            }
            else if (gameState == GameState.Lose)
            {
                grid.Update(gameTime.AsSeconds(), pacman);

                gameOverTime += gameTime.AsSeconds();

                if (gameOverTime > 2f)
                {
                    Init_Game();
                    Score.Reset();
                }
            }
            else
            {
                winTime += gameTime.AsSeconds();

                if (winTime > 2f)
                {
                    Init_Game();
                    Score.WinReset();
                }
            }
        }