56 lines
2.0 KiB
C#
56 lines
2.0 KiB
C#
|
using RoadTrain.Entities;
|
|||
|
using System.Drawing;
|
|||
|
|
|||
|
namespace RoadTrain.DrawningObjects
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// Класс, отвечающий за прорисовку и перемещение объекта-сущности
|
|||
|
/// </summary>
|
|||
|
public class DrawningTrain : DrawningRoadTrain
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// Конструктор
|
|||
|
/// </summary>
|
|||
|
/// <param name="speed">Скорость</param>
|
|||
|
/// <param name="weight">Вес</param>
|
|||
|
/// <param name="bodyColor">Основной цвет</param>
|
|||
|
/// <param name="additionalColor">Дополнительный цвет</param>
|
|||
|
/// <param name="waterContainer">Признак наличия обвеса</param>
|
|||
|
/// <param name="sweepingBrush">Признак наличия антикрыла</param>
|
|||
|
/// <param name="width">Ширина картинки</param>
|
|||
|
/// <param name="height">Высота картинки</param>
|
|||
|
public DrawningTrain(int speed, double weight, Color bodyColor, Color
|
|||
|
additionalColor, bool waterContainer, bool sweepingBrush, int width, int height) :base(speed, weight, bodyColor, 70, 30)
|
|||
|
{
|
|||
|
if (EntityRoadTrain != null)
|
|||
|
{
|
|||
|
EntityRoadTrain = new EntityTrain(speed, weight, bodyColor,
|
|||
|
additionalColor, waterContainer, sweepingBrush);
|
|||
|
}
|
|||
|
}
|
|||
|
public override void DrawTransport(Graphics g)
|
|||
|
{
|
|||
|
if (EntityRoadTrain is not EntityTrain train)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
Pen pen = new(Color.Black);
|
|||
|
Brush additionalBrush = new SolidBrush(train.AdditionalColor);
|
|||
|
//Контейнер с водой
|
|||
|
if (train.WaterContainer)
|
|||
|
{
|
|||
|
g.DrawEllipse(pen, _startPosX + 30, _startPosY, 10, 20);
|
|||
|
g.FillEllipse(additionalBrush, _startPosX + 30, _startPosY, 10, 20);
|
|||
|
|
|||
|
}
|
|||
|
base.DrawTransport(g);
|
|||
|
if (train.SweepingBrush)
|
|||
|
{
|
|||
|
g.DrawLine(pen, _startPosX + 30, _startPosY + 10, _startPosX + 20, _startPosY + 10);
|
|||
|
g.DrawLine(pen, _startPosX + 20, _startPosY + 10, _startPosX + 10, _startPosY + 30);
|
|||
|
g.DrawLine(pen, _startPosX + 17, _startPosY + 30, _startPosX + 3, _startPosY + 30);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|