/// <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(); } } }