Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
                }
            }
        }
Exemplo n.º 4
0
 public bool IsColliding(ObstacleElement obstacle)
 {
     if (obstacle.Row == this.Row && obstacle.Column == this.Column)
     {
         return true;
     }
     else
     {
         return false;
     }
 }