diff --git a/ArmoredCar/ArmoredCar/DrawningArmoredCar.cs b/ArmoredCar/ArmoredCar/DrawningArmoredCar.cs index a0ae58b..8277aa6 100644 --- a/ArmoredCar/ArmoredCar/DrawningArmoredCar.cs +++ b/ArmoredCar/ArmoredCar/DrawningArmoredCar.cs @@ -12,15 +12,15 @@ namespace ArmoredCar /// /// Класс-сущность /// - public EntityArmoredCar ArmoredCar { private set; get; } + public EntityArmoredCar ArmoredCar { protected set; get; } /// /// Левая координата отрисовки бронированной машины /// - private float _startPosX; + protected float _startPosX; /// /// Верхняя кооридната отрисовки бронированной машины /// - private float _startPosY; + protected float _startPosY; /// /// Ширина окна отрисовки /// @@ -43,11 +43,18 @@ namespace ArmoredCar /// Скорость /// Вес бронированной машины /// Цвет кузова - public void Init(int speed, float weight, Color bodyColor) + public DrawningArmoredCar(int speed, float weight, Color bodyColor) { - ArmoredCar = new EntityArmoredCar(); - ArmoredCar.Init(speed, weight, bodyColor); + ArmoredCar = new EntityArmoredCar(speed, weight, bodyColor); } + + protected DrawningArmoredCar(int speed, float weight, Color bodyColor, int carWidth, int carHeight) : + this(speed, weight, bodyColor) + { + _carWidth = carWidth; + _carHeight = carHeight; + } + /// /// Установка позиции бронированной машины /// @@ -114,24 +121,22 @@ namespace ArmoredCar /// Отрисовка бронированной машины /// /// - public void DrawTransport(Graphics g) + public virtual void DrawTransport(Graphics g) { if (_startPosX < 0 || _startPosY < 0 || !_pictureHeight.HasValue || !_pictureWidth.HasValue) { return; } - Pen pen = new(Color.Black); - - Brush br = new SolidBrush(ArmoredCar?.BodyColor ?? Color.Black); + g.FillRectangle(br, _startPosX + 20, _startPosY, 40, 20); g.FillRectangle(br, _startPosX, _startPosY + 20, 80, 20); g.FillEllipse(br, _startPosX, _startPosY + 30, 20, 20); - + g.FillEllipse(br, _startPosX + 80 - 20, _startPosY + 30, 20, 20); - + g.FillRectangle(br, _startPosX + 15, _startPosY + 20, 60, 30); Brush brGray = new SolidBrush(Color.LightGray); @@ -163,6 +168,14 @@ namespace ArmoredCar _startPosY = _pictureHeight.Value - _carHeight; } } - + /// + /// Получение текущей позиции объекта + /// + /// + public (float Left, float Right, float Top, float Bottom) + GetCurrentPosition() + { + return (_startPosX, _startPosX + _carWidth, _startPosY, _startPosY + _carHeight); + } } } diff --git a/ArmoredCar/ArmoredCar/EntityArmoredCar.cs b/ArmoredCar/ArmoredCar/EntityArmoredCar.cs index a63e8c2..02396ba 100644 --- a/ArmoredCar/ArmoredCar/EntityArmoredCar.cs +++ b/ArmoredCar/ArmoredCar/EntityArmoredCar.cs @@ -30,7 +30,7 @@ namespace ArmoredCar /// /// /// - public void Init(int speed, float weight, Color bodyColor) + public EntityArmoredCar(int speed, float weight, Color bodyColor) { Random rnd = new(); Speed = speed <= 0 ? rnd.Next(50, 150) : speed;