コード例 #1
0
ファイル: Game.cs プロジェクト: EljovenAleman/SpaceInvaders
        public void Start()
        {
            Console.CursorVisible = false;

            PlayerShip playership = new PlayerShip();

            Enemy[] enemiesType0 = CreateEnemies(24, '0');
            Enemy[] enemiesType1 = CreateEnemies(24, '1');
            Enemy[] enemiesType2 = CreateEnemies(12, '2');

            List <Enemy> enemyList = new List <Enemy>();

            enemyList.AddRange(enemiesType0);
            enemyList.AddRange(enemiesType1);
            enemyList.AddRange(enemiesType2);

            World.AddEntity(playership);
            for (int f = 0; f < enemyList.Count; f++)
            {
                World.AddEntity(enemyList[f]);
            }

            EntityPositioner.PositionatePlayerShip(playership);
            EntityPositioner.PositionateEnemies(enemyList);

            while (CheckVictory(enemyList))
            {
                //Graphics.ClearScreen();

                if (RNG.RollForSpecialEnemy() == 1)
                {
                    SpecialEnemy specialEnemy = new SpecialEnemy('>');
                    EntityPositioner.PositionateSpecialEnemy(specialEnemy);
                    World.AddEntity(specialEnemy);
                }

                Graphics.DrawEntities(World.entities);

                ScoreBoard.ShowScore();

                if (Input.UserPressedGameKey())
                {
                    playership.ProcessInputAction(Input.GetInputAction());
                }

                //si DrawEntities lo pongo acá, se desarma todo, por qué?

                for (int f = 0; f < World.entities.Count; f++)
                {
                    World.entities[f].Update();
                }
                //si no pongo esto se duplica, por qué?
                Console.SetCursorPosition(0, 0);

                Thread.Sleep(10);
            }

            if (gameWon)
            {
                Graphics.ClearScreen();
                Console.SetCursorPosition(35, 10);
                Console.WriteLine("You win!");

                Console.SetCursorPosition(32, 20);
                Console.WriteLine("Final score: " + ScoreBoard.totalScore);
            }
            else
            {
                Graphics.ClearScreen();
                Console.SetCursorPosition(35, 10);
                Console.WriteLine("You lose");

                Console.SetCursorPosition(32, 20);
                Console.WriteLine("Final score: " + ScoreBoard.totalScore);
            }
        }
コード例 #2
0
 public static void PositionateSpecialEnemy(SpecialEnemy specialEnemy)
 {
     specialEnemy.Move(0, 1);
 }