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;