64 lines
2.5 KiB
C#
64 lines
2.5 KiB
C#
using ProjectTank.Entities;
|
||
|
||
namespace ProjectTank.Drawnings;
|
||
/// <summary>
|
||
/// Класс, отвечающий за прорисовку и перемещение объекта-сущности
|
||
/// </summary>
|
||
public class DrawningTank1 : DrawningTank2
|
||
{
|
||
/// <summary>
|
||
/// Конструктор
|
||
/// <summary>
|
||
/// <param name="speed">Скорость</param>
|
||
/// <param name="weight">Вес автомобиля</param>
|
||
/// <param name="bodyColor">Основной цвет</param>
|
||
/// <param name="additionalColor">Дополнительный цвет</param>
|
||
/// <param name="gun">Признак наличия пушки</param>
|
||
/// <param name="machinGun">признак наличия пулемета</param>
|
||
///
|
||
public DrawningTank1(int speed, double weight, Color bodyColor, Color additionalColor, bool gun, bool machinGun) : base(150, 87)
|
||
{
|
||
EntityTank2 = new EntityTank1(speed, weight, bodyColor, additionalColor, gun, machinGun);
|
||
}
|
||
|
||
/// <summary>
|
||
/// Прорисовка объекта
|
||
/// </summary>
|
||
/// <param name="g"></param>
|
||
public override void DrawTransport(Graphics g)
|
||
{
|
||
if (EntityTank2 == null || EntityTank2 is not EntityTank1 Tank1 || !_startPosX.HasValue || !_startPosY.HasValue)
|
||
{
|
||
return;
|
||
}
|
||
Pen pen = new(Color.Black);
|
||
Brush additionalBrush = new SolidBrush(Tank1.AdditionalColor);
|
||
|
||
if (Tank1.Gun)
|
||
{
|
||
g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value + 30, 45, 5);
|
||
|
||
g.FillRectangle(additionalBrush, _startPosX.Value, _startPosY.Value + 30, 45, 5);
|
||
}
|
||
|
||
//пулемет
|
||
if (Tank1.MachinGun)
|
||
{
|
||
g.DrawRectangle(pen, _startPosX.Value + 65, _startPosY.Value + 15, 16, 5);
|
||
g.DrawRectangle(pen, _startPosX.Value + 72, _startPosY.Value + 10, 5, 5);
|
||
g.DrawRectangle(pen, _startPosX.Value + 71, _startPosY.Value + 3, 7, 7);
|
||
g.DrawRectangle(pen, _startPosX.Value + 55, _startPosY.Value + 5, 15, 3);
|
||
|
||
g.FillRectangle(additionalBrush, _startPosX.Value + 65, _startPosY.Value + 15, 16, 5);
|
||
g.FillRectangle(additionalBrush, _startPosX.Value + 72, _startPosY.Value + 10, 5, 5);
|
||
g.FillRectangle(additionalBrush, _startPosX.Value + 71, _startPosY.Value + 3, 7, 7);
|
||
g.FillRectangle(additionalBrush, _startPosX.Value + 55, _startPosY.Value + 5, 15, 3);
|
||
}
|
||
_startPosY += 20;
|
||
base.DrawTransport(g);
|
||
_startPosY -= 20;
|
||
|
||
}
|
||
|
||
}
|