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); }
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); }