79 lines
3.1 KiB
C#
79 lines
3.1 KiB
C#
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);
|
||
}
|
||
}
|
||
}
|
||
}
|