/// <summary> /// Displays the header /// </summary> private void DisplayHeader() { // Set the color to red BufferEditor.WriteWithColor(0, 0, " ", ConsoleColor.Red); BufferEditor.WriteWithColor(0, 5, " ", ConsoleColor.Red); // Loop 100 times for (int i = 0; i < 100; i++) { // Write to the buffer BufferEditor.Write(i, 0, "-"); BufferEditor.Write(i, 5, "-"); } // Change the color to blue BufferEditor.WriteWithColor(0, 1, " ", ConsoleColor.Blue); // Write to the buffer BufferEditor.Write(1, 1, "Score:"); BufferEditor.Write(30, 1, "Level:"); BufferEditor.Write(47, 1, "Lifes:"); // Write the numbers to the buffer NumberManager.WriteScore(score); NumberManager.WriteLevel(level); NumberManager.WriteLifes(lifes); }
/// <summary> /// Is called when the level is completed to play animations and initialise the next level /// </summary> private void LevelCompleted() { // Create a new timer to be a counter for the animations duration Timer counter = new Timer(201); // Create a new timer for the blinking animation Timer blinker = new Timer(9); // Create a new bool bool displayScore = false; // Clears the buffer BufferEditor.ClearBuffer(); // Loops while the counter is counting while (counter.IsCounting()) { // Sets the display score to true or false depending on the counter displayScore = !blinker.IsCounting() ? !displayScore : displayScore; // If displayScore is true if (displayScore) { // Write an informational text saying that the level was completed BufferEditor.WriteWithColor(0, 22, " ", ConsoleColor.Yellow); BufferEditor.WriteWithColor(0, 24, " ", ConsoleColor.Yellow); BufferEditor.Delete(36, 22, "L E V E L C O M P L E T E D!"); BufferEditor.Delete(38, 24, "Level bonus 1000 points!"); NumberManager.WriteLevel(level); } else { // Delete the previously written text BufferEditor.Write(36, 22, " "); BufferEditor.Write(38, 24, " "); NumberManager.DeleteLevel(); } // Updates the score score += 5; NumberManager.WriteScore(score); // Updates the header DisplayHeader(); // Display the frame BufferEditor.DisplayRender(); // Wait for 20 miliseconds Thread.Sleep(20); } // Removes the text in the middle of the screen BufferEditor.Write(36, 22, " "); BufferEditor.Write(38, 24, " "); // Increases the level level++; // Updates the level number NumberManager.WriteLevel(level); // Delays for 800 miliseconds Thread.Sleep(800); // Initializes the next level InitNextLevel(); }