Переход на конструкторы

This commit is contained in:
prodigygirl 2022-10-03 08:33:34 +04:00
parent 5b9d906004
commit 24a9adfa4d
2 changed files with 27 additions and 14 deletions

View File

@ -12,15 +12,15 @@ namespace ArmoredCar
/// <summary>
/// Класс-сущность
/// </summary>
public EntityArmoredCar ArmoredCar { private set; get; }
public EntityArmoredCar ArmoredCar { protected set; get; }
/// <summary>
/// Левая координата отрисовки бронированной машины
/// </summary>
private float _startPosX;
protected float _startPosX;
/// <summary>
/// Верхняя кооридната отрисовки бронированной машины
/// </summary>
private float _startPosY;
protected float _startPosY;
/// <summary>
/// Ширина окна отрисовки
/// </summary>
@ -43,11 +43,18 @@ namespace ArmoredCar
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес бронированной машины</param>
/// <param name="bodyColor">Цвет кузова</param>
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;
}
/// <summary>
/// Установка позиции бронированной машины
/// </summary>
@ -114,24 +121,22 @@ namespace ArmoredCar
/// Отрисовка бронированной машины
/// </summary>
/// <param name="g"></param>
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;
}
}
/// <summary>
/// Получение текущей позиции объекта
/// </summary>
/// <returns></returns>
public (float Left, float Right, float Top, float Bottom)
GetCurrentPosition()
{
return (_startPosX, _startPosX + _carWidth, _startPosY, _startPosY + _carHeight);
}
}
}

View File

@ -30,7 +30,7 @@ namespace ArmoredCar
/// <param name="weight"></param>
/// <param name="bodyColor"></param>
/// <returns></returns>
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;