/// <summary> /// Rereshes the user interface. /// </summary> public void RefreshUserInterface() { GameUserIterface.ActiveTetromino = Model.ActiveTetromino; if (GameUserIterface.InvokeRequired) { RefreshScreen rs = new RefreshScreen(RefreshUserInterface); try { GameUserIterface.Invoke(rs); } #pragma warning disable CS0168 // Variable is declared but never used catch (ObjectDisposedException e) #pragma warning restore CS0168 // Variable is declared but never used { //The program has exited, no point in updating the screen } #pragma warning disable CS0168 // Variable is declared but never used catch (System.ComponentModel.InvalidAsynchronousStateException e) #pragma warning restore CS0168 // Variable is declared but never used { //The program has exited, no point in updating the screen } #pragma warning disable CS0168 // Variable is declared but never used catch (Exception e) #pragma warning restore CS0168 // Variable is declared but never used { //General catch to catch other thread related errors that rarely happens and are hard to force. } } else { GameUserIterface.Refresh(); } }
/// <summary> /// Updates the displayed score /// </summary> /// <param name="points"></param> public void UpdateScore() { if (AllTimeHighScore < Model.Score) { AllTimeHighScore = Model.Score; } GameUserIterface.UpdateDisplayedScore(Model.Score.ToString()); }
/// <summary> /// Handles logic when Game Over occures. /// </summary> public void GameOver() { if (GameUserIterface.InvokeRequired) { ShowGameOverScreen go = new ShowGameOverScreen(GameUserIterface.DisplayGameOverScreen); try { GameUserIterface.Invoke(go); } catch (ObjectDisposedException) { //The program has exited } } else { GameUserIterface.DisplayGameOverScreen(); } }
/// <summary> /// Displays the next tetromino to the user. /// </summary> public void DisplayNexTetromino() { GameUserIterface.SetNextTetromino(Model.NextTetromino); }
/// <summary> /// Increases the level. /// </summary> public void IncreaseLevel() { Model.IncreaseLevel(); GameUserIterface.UpdateDisplayedLevel(Model.Level.ToString()); }
/// <summary> /// Resumes the game. /// </summary> public void ResumeGame() { Model.ResumeGame(); GameUserIterface.HidePauseMenu(); }
/// <summary> /// Pauses the game /// </summary> public void PauseGame() { Model.PauseGame(); GameUserIterface.DisplayPauseMenu(); }
/// <summary> /// Updates the displayed line count /// </summary> public void UpdateLineCount() { GameUserIterface.UpdateDisplayedLineCount(Model.RowsRemovedInTotal.ToString()); }
/// <summary> /// Updates the displayed level. /// </summary> public void UpdateLevel() { GameUserIterface.UpdateDisplayedLevel(Model.Level.ToString()); }
/// <summary> /// Handles logic for when the space bar is pressed. /// </summary> public void DropTetrominoAllTheWay() { Model.DropActiveTetromino(); GameUserIterface.ActiveTetromino = Model.ActiveTetromino; GameUserIterface.Refresh(); }
/// <summary> /// Handles logic for the down arrow key pressed. /// </summary> public void RotateTetrominoAnticlockwise() { Model.RotatActiveTetrominoToTheLeftIfPossible(); GameUserIterface.ActiveTetromino = Model.ActiveTetromino; GameUserIterface.Refresh(); }
/// <summary> /// Handle logic for up arrow key pressed. /// </summary> public void RotatTetrominoClockwise() { Model.RotatActiveTetrominoToTheRightIfPossible(); GameUserIterface.ActiveTetromino = Model.ActiveTetromino; GameUserIterface.Refresh(); }
/// <summary> /// Handles logic for left arrow key pressed. /// </summary> public void MoveTetrominoLeft() { Model.MoveActiveTetrominoToTheLeftIsPossible(); GameUserIterface.ActiveTetromino = Model.ActiveTetromino; GameUserIterface.Refresh(); }
/// <summary> /// Handles logic for right arrow key pressed. /// </summary> public void MoveTetrominoRight() { Model.MoveActiveTetrminoToTheRightIfPossible(); GameUserIterface.ActiveTetromino = Model.ActiveTetromino; GameUserIterface.Refresh(); }