Exemple #1
0
 public Game(int width, int height, int cursorSize, bool visible)
 {
     SetWindowSize(width, height);
     SetBufferSize(width, height);
     Title         = $"My Game";
     CursorSize    = cursorSize;
     CursorVisible = visible;
     _startTime    = Win32Invoker.TimeGetTime(); //DateTime.Now.Millisecond
     _frameCount   = 0;
     _fps          = 0d;
     isPaused      = false;
     rnd           = new Random();
     score         = new Score(0, 39);
     playerLives   = new Lives(70, 39, 3, 5);
     enemyLives    = new Lives(0, 0, 3, 20);
     player        = new Player(40, 35, 3, score, playerLives);
     enemies       = new Enemy[8];
     for (int i = 0; i < enemies.Length; ++i)
     {
         enemies[i] = new Enemy()
         {
             Score = score
         };
         enemies[i].IsAlive = false;
     }
     enemyBoss = new EnemyBoss(20, 0, 2, score, enemyLives);
 }
Exemple #2
0
        public bool Run()
        {
            //ConsoleKeyInfo key = new ConsoleKeyInfo();
            DrawMenu();
            ConsoleKeyInfo key = ReadKey(true);

            if (key.Key == ConsoleKey.D1)
            {
                Clear();
                while (key.Key != ConsoleKey.Escape)
                {
                    while (!GetInput(ref key))
                    {
                        double currTime = Win32Invoker.TimeGetTime() - _lastTime;
                        if (currTime < GameSpeed)
                        {
                            continue;
                        }
                        // Clear section
                        Remove();

                        switch (key.Key)
                        {
                        case ConsoleKey.RightArrow: player.MoveRight(); break;

                        case ConsoleKey.LeftArrow: player.MoveLeft(); break;

                        case ConsoleKey.UpArrow: player.MoveUp(); break;

                        case ConsoleKey.DownArrow: player.MoveDown(); break;

                        case ConsoleKey.Spacebar: ((Player)player).Fire(); break;

                        case ConsoleKey.P: isPaused = !isPaused; break;

                        default: break;
                        }
                        key = new ConsoleKeyInfo();

                        if (!isPaused)
                        {
                            // Update player section
                            Update();
                        }
                        // Draw section
                        Draw();
                        _frameCount++;
                        _lastTime = Win32Invoker.TimeGetTime();
                    }
                    _fps  = _frameCount / ((Win32Invoker.TimeGetTime() - _startTime) / 1000);
                    Title = $"Game speed: {_fps:0.##} fps";
                    //WriteLine($"Here's what you pressed: {key}");
                }
            }
            WriteLine($"{(_frameCount / ((Win32Invoker.TimeGetTime() - _startTime) / 1000)):0.##} fps");
            //WriteLine($"{Win32Interop.TimeGetTime() - _startTime} ms");
            //WriteLine($"Frame count: {_frameCount}");
            WriteLine("End of the game");

            return(true);
        }