Переход на конструкторы
This commit is contained in:
parent
5b9d906004
commit
24a9adfa4d
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user