private void GenerateGameScene() { string text = File.ReadAllText("FlappyMap.txt"); string[] mapText = text.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < mapText.Length; i++) { for (int j = 0; j < mapText[i].Length; j++) { GameElement element; if (mapText[i][j] == 'w') { this.player = new PlayerElement(); element = this.player; } else if (mapText[i][j] == '@') { element = new ObstacleElement(); } else { element = new EmptySpaceElement(); } element.Row = i; element.Column = j; gameElements.Add(element); } } }
public override double StartGame() { GenerateGameScene(); Console.SetWindowSize(51, 18); bool gameOver = false; while (!gameOver) { Console.Clear(); foreach (var element in gameElements) { element.UpdateNextFrame(); if (element.Column < 0 || element.Column >= 50 || element.Row < 0 || element.Row >= 16 || element is EmptySpaceElement) { continue; } ObstacleElement obstacle = element as ObstacleElement; if (obstacle != null) { if (player.IsColliding(obstacle)) { gameOver = true; } } Console.SetCursorPosition(element.Column, element.Row); Console.ForegroundColor = element.DisplayColor; Console.Write(element.DisplaySymbol); } Console.SetCursorPosition(0, 16); Console.Write("Score: {0}", score); if (Console.KeyAvailable) { ConsoleKeyInfo pressedKey = Console.ReadKey(); if (pressedKey.Key == ConsoleKey.Escape) { break; } else if (pressedKey.Key == ConsoleKey.Spacebar) { this.player.Jump(); } } score++; Thread.Sleep(100); } this.PrintVictoryScreen(); Console.ReadKey(); Console.SetWindowSize(80, 44); return(score); }
private void GenerateGameScene() { string text = File.ReadAllText("FlappyMap.txt"); string[] mapText = text.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < mapText.Length; i++) { for (int j = 0; j < mapText[i].Length; j++) { GameElement element; if (mapText[i][j] == 'w') { this.player = new PlayerElement(); element = this.player; } else if (mapText[i][j] == '@') { element = new ObstacleElement(); } else { element = new EmptySpaceElement(); } element.Row = i; element.Column = j; gameElements.Add(element); } } }
public bool IsColliding(ObstacleElement obstacle) { if (obstacle.Row == this.Row && obstacle.Column == this.Column) { return true; } else { return false; } }