pibd-12_Tangatarov.I.A._Base/HoistingCrane/HoistingCrane/Drawning/DrawningHoistingCrane.cs
2024-03-04 19:24:17 +04:00

85 lines
3.2 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 HoistingCrane.Entities;
using System.Configuration;
namespace HoistingCrane.Drawning;
//В данном классе мы будем думать над полем игры, размерами персонажа, размерами объектов и т.д.
public class DrawningHoistingCrane : DrawningTrackedVehicle
{
/// <summary>
/// Ширина окна
/// </summary>
private int? _pictureWidth;
/// <summary>
/// Высота окна
/// </summary>
private int? _pictureHeight;
/// <summary>
/// Ширина прорисовки автомобиля
/// </summary>
private readonly int _drawingCarWidth = 115;
/// <summary>
/// Высота прорисовки автомобиля
/// </summary>
private readonly int _drawingCarHeight = 63;
/// <summary>
/// конструктор класса отрисовки крана
/// </summary>
/// <param name="AdditionalColor">Дополнительный цвет</param>
/// <param name="Counterweight">Противовес</param>
/// <param name="Platform">Платформа</param>
public DrawningHoistingCrane(int speed, int weight, Color bodyColor, Color additionalColor, bool counterweight, bool platform) : base(115, 63)
{
EntityTrackedVehicle = new EntityHoistingCrane(speed, weight, bodyColor, additionalColor, counterweight, platform);
}
/// <summary>
/// Метод отрисовки объекта
/// </summary>
/// <param name="gr"></param>
public override void DrawTransport(Graphics gr)
{
if (EntityTrackedVehicle == null || EntityTrackedVehicle is not EntityHoistingCrane EntityHoistingCrane || !_startPosX.HasValue || !_startPosY.HasValue)
{
return;
}
base.DrawTransport(gr);
Brush b = new SolidBrush(EntityHoistingCrane.AdditionalColor);
Pen pen = new Pen(EntityHoistingCrane.AdditionalColor);
Pen penBase = new Pen(EntityHoistingCrane.BodyColor);
if (EntityHoistingCrane.Counterweight)
{
//противовес
gr.DrawRectangle(pen, _startPosX.Value + 69, _startPosY.Value + 3, 10, 10);
gr.DrawLine(pen, _startPosX.Value + 68, _startPosY.Value + 3, _startPosX.Value + 78, _startPosY.Value + 12);
gr.DrawLine(pen, _startPosX.Value + 68, _startPosY.Value + 7, _startPosX.Value + 78, _startPosY.Value + 3);
}
if (EntityHoistingCrane.Platform) {
//Наличие спусковой платформы
gr.FillRectangle(b, _startPosX.Value + 101, _startPosY.Value + 40, 15, 5);
gr.FillRectangle(b, _startPosX.Value + 116, _startPosY.Value + 35, 4, 5);
gr.FillRectangle(b, _startPosX.Value + 97, _startPosY.Value + 35, 4, 5);
}
//Отрисовка крана, на котором держится платформа и противовес
gr.FillRectangle(b, _startPosX.Value + 65, _startPosY.Value, 5, 26);
gr.FillRectangle(b, _startPosX.Value + 65, _startPosY.Value, 50, 4);
gr.DrawLine(penBase, _startPosX.Value + 115, _startPosY.Value + 4, _startPosX.Value + 108, _startPosY.Value + 40);
}
}