using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Sailboat { /// /// Класс, отвечающий за прорисовку и перемещение объекта-сущности /// class DrawingSailboat : DrawingBoat { /// /// Инициализация свойств /// /// Скорость /// Вес автомобиля /// Цвет кузова /// Признак наличия паруса /// Признак наличия усиленного корпуса public DrawingSailboat(int speed, float weight, Color bodyColor, Color edgeColor, bool sail, bool extendedBody) : base(speed, weight, bodyColor, 80, 135) { Boat = new Sailboat(speed, weight, bodyColor, edgeColor, sail, extendedBody); } public override void DrawTransport(Graphics g) { if (Boat is not Sailboat sailboat) { return; } Pen pen = new(Color.Black); Brush brush = new SolidBrush(sailboat.EdgeColor); _startPosY += 40; _startPosX += 20; base.DrawTransport(g); _startPosY -= 40; _startPosX -= 20; if (sailboat.Sail) { g.DrawLine(pen, _startPosX + 40, _startPosY, _startPosX + 60, _startPosY + 60); g.DrawLine(pen, _startPosX + 40, _startPosY, _startPosX + 70, _startPosY + 30); g.DrawLine(pen, _startPosX + 70, _startPosY + 30, _startPosX + 60, _startPosY + 55); } if (sailboat.ExtendedBody) { //корма g.FillRectangle(brush, _startPosX + 15, _startPosY + 38, 70, 5); g.FillRectangle(brush, _startPosX + 15, _startPosY + 78, 70, 5); g.FillRectangle(brush, _startPosX + 15, _startPosY + 38, 5, 40); //усиленный нос g.FillRectangle(brush, _startPosX + 133, _startPosY + 55, 10, 10); } } } }