/// <summary> /// Функция отрисовки экрана (вызывает 5 раз в секунду) /// </summary> /// <param name="screen"></param> public void Draw(Screen screen) { DrawBorder(screen); if (!_isGameOver) { // Рисуем игрока screen.SetPixel(_player.X, _player.Y, '■'); for (int i = 0; i < _opponents.Count; i++) { _opponents[i].Position.Move(_opponents[i].Speed); if (CheckOpp(_opponents[i])) { _opponents[i] = GameObject.CreateOpponent(_random, _maxWidth, _maxHeight); } // Рисуем оппонента screen.SetPixel(_opponents[i].Position.X, _opponents[i].Position.Y, '@'); if (_opponents[i].Position.Equals(_player)) { _isGameOver = true; } } _result++; if (_result % 30 == 0) { _opponents.Add(GameObject.CreateOpponent(_random, _maxWidth, _maxHeight)); } } else { GameOver(screen); } }
private void DrawBorder(Screen screen) { // Рисуем вертикальные границы экрана for (int i = 0; i < screen.Height; i++) { screen.SetPixel(0, i, '|'); screen.SetPixel(screen.Width - 1, i, '|'); } // Рисуем горизонтальные границы экрана for (int i = 0; i < screen.Width; i++) { screen.SetPixel(i, 0, '-'); screen.SetPixel(i, screen.Height - 1, '-'); } screen.SetPixel(0, 0, '┌'); screen.SetPixel(_maxWidth - 1, 0, '┐'); screen.SetPixel(0, _maxHeight - 1, '└'); screen.SetPixel(_maxWidth - 1, _maxHeight - 1, '┘'); }