2024-04-10 00:57:31 +04:00

52 lines
2.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Tank.Entities;
namespace Tank.Drowings;
/// <summary>
/// Класс, отвечающий за прорисовку и перемещение объекта-сущности
/// </summary>
public class DrawningTank : DrawningMachine
{
/// <summary>
/// Конструктор
/// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес</param>
/// <param name="bodyColor">Основной цвет</param>
/// <param name="additionalColor">Дополнительный цвет</param>
/// <param name="pushka">Признак наличия обвеса</param>
/// <param name="pulemet">Признак наличия антикрыла</param>
public DrawningTank(int speed, double weight, Color bodyColor, Color additionalColor, bool pushka, bool pulemet) : base(218, 105)
{
EntityMachine = new EntityTank(speed, weight, bodyColor, additionalColor, pushka, pulemet);
}
/// <summary>
/// Прорисовка объекта
/// </summary>
/// <param name="g"></param>
public override void DrawTransport(Graphics g)
{
if (EntityMachine == null || EntityMachine is not EntityTank tank || !_startPosX.HasValue || !_startPosY.HasValue)
{
return;
}
base.DrawTransport(g);
Brush additionalBrush = new SolidBrush(tank.AdditionalColor);
if (tank.Pushka)
g.FillRectangle(additionalBrush, _startPosX.Value + 120, _startPosY.Value + 20, 100, 15);
if (tank.Pulemet)
{
Point p = new Point(_startPosX.Value + 75, _startPosY.Value + 10);
Point p1 = new Point(_startPosX.Value + 80, _startPosY.Value + 1);
Point p2 = new Point(_startPosX.Value + 87, _startPosY.Value + 2);
Point p3 = new Point(_startPosX.Value + 80, _startPosY.Value + 10);
Point[] p_pulemet1 = { p, p1, p2, p3 };
g.FillPolygon(additionalBrush, p_pulemet1);
}
}
}