2023-10-20 00:40:49 +04:00

79 lines
3.1 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 System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ProjectAntiAircraftGun.Entities;
namespace ProjectAntiAircraftGun.DrawingObjects
{
/// <summary>
/// Класс, отвечающий за прорисовку и перемещение объекта-сущности
/// </summary>
public class DrawingAntiAircraftGun : DrawingTank
{
/// <summary>
/// Конструктор
/// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес</param>
/// <param name="bodyColor">Основной цвет</param>
/// <param name="additionalColor">Дополнительный цвет</param>
/// <param name="radar">Признак наличия радара</param>
/// <param name="hatch">Признак наличия люка</param>
/// <param name="cannon">Признак наличия пушки</param>
/// <param name="width">Ширина картинки</param>
/// <param name="height">Высота картинки</param>
public DrawingAntiAircraftGun(int speed, double weight, Color bodyColor, Color
additionalColor, bool radar, bool hatch, bool cannon, int width, int height) :
base(speed, weight, bodyColor, additionalColor, width, height, 102, 139)
{
if (EntityTank != null)
{
EntityTank = new EntityAntiAircraftGun(speed, weight, bodyColor,
additionalColor, radar, hatch, cannon);
}
}
public override void DrawTransport(Graphics g)
{
if (EntityTank is not EntityAntiAircraftGun antiAircraftGun)
{
return;
}
Pen pen = new(Color.Black);
pen.Width = 2;
base.DrawTransport(g);
// радар
if (antiAircraftGun.Radar)
{
Pen penRadar = new(Color.DarkGreen);
g.DrawEllipse(penRadar, _startPosX + 52, _startPosY + 46, 21, 12);
g.DrawEllipse(penRadar, _startPosX + 55, _startPosY + 48, 14, 8);
pen = new(Color.Green);
g.DrawLine(penRadar, _startPosX + 61, _startPosY + 52, _startPosX + 70, _startPosY + 48);
}
// пушка
if (antiAircraftGun.Cannon)
{
g.DrawLine(pen, _startPosX + 54, _startPosY + 33, _startPosX + 113, _startPosY + 2);
g.DrawLine(pen, _startPosX + 57, _startPosY + 35, _startPosX + 122, _startPosY + 2);
}
// люк
if (antiAircraftGun.Hatch)
{
pen = new(antiAircraftGun.AdditionalColor);
g.DrawRectangle(pen, _startPosX + 88, _startPosY + 64, 17, 6);
g.DrawLine(pen, _startPosX + 88, _startPosY + 67, _startPosX + 105, _startPosY + 67);
g.DrawLine(pen, _startPosX + 94, _startPosY + 64, _startPosX + 94, _startPosY + 70);
}
}
}
}