2024-03-14 16:09:51 +04:00
|
|
|
|
using System.Drawing;
|
|
|
|
|
|
|
|
|
|
namespace ProjectAntiAircraftGun
|
|
|
|
|
{
|
|
|
|
|
internal class DrawingAntiAircraft
|
|
|
|
|
{
|
|
|
|
|
AntiAircraft aag;
|
|
|
|
|
private readonly int _width = 0;
|
|
|
|
|
private readonly int _height = 0;
|
|
|
|
|
public DrawingAntiAircraft(AntiAircraft aag)
|
|
|
|
|
{
|
|
|
|
|
this.aag = aag;
|
|
|
|
|
}
|
|
|
|
|
public DrawingAntiAircraft()
|
|
|
|
|
{
|
|
|
|
|
aag = new AntiAircraft();
|
|
|
|
|
}
|
|
|
|
|
public void SetPos(Point pos)
|
|
|
|
|
{
|
|
|
|
|
aag.position.X = Math.Clamp(pos.X + aag.position.X, 0, Program.faag.ClientSize.Width-_width);
|
|
|
|
|
aag.position.Y = Math.Clamp(pos.Y + aag.position.Y, 0, Program.faag.ClientSize.Height-_height);
|
|
|
|
|
}
|
|
|
|
|
public void MoveTransport(Vector2 way)
|
|
|
|
|
{
|
|
|
|
|
if(way == null)
|
|
|
|
|
{
|
|
|
|
|
throw new NullReferenceException();
|
|
|
|
|
}
|
|
|
|
|
SetPos(new Point((int)(way.x*aag.Step), (int)(way.y*aag.Step)));
|
|
|
|
|
}
|
|
|
|
|
public void Draw(Graphics g)
|
|
|
|
|
{
|
|
|
|
|
Pen pen = new Pen(Color.Black);
|
2024-03-14 16:23:13 +04:00
|
|
|
|
Brush brush1 = new SolidBrush(aag.FirstColor);
|
|
|
|
|
Brush brush2 = new SolidBrush(aag.SecondColor);
|
2024-03-14 16:09:51 +04:00
|
|
|
|
|
|
|
|
|
// Отрисовка гусениц
|
|
|
|
|
g.DrawLine(pen, aag.position.X, aag.position.Y + 30, aag.position.X + 90, aag.position.Y + 30);
|
|
|
|
|
g.DrawLine(pen, aag.position.X + 90, aag.position.Y + 30, aag.position.X + 90, aag.position.Y + 15);
|
|
|
|
|
g.DrawLine(pen, aag.position.X + 90, aag.position.Y + 15, aag.position.X, aag.position.Y + 15);
|
|
|
|
|
g.DrawLine(pen, aag.position.X, aag.position.Y + 15, aag.position.X, aag.position.Y + 30);
|
|
|
|
|
|
|
|
|
|
// Отрисовка катков
|
2024-03-14 16:23:13 +04:00
|
|
|
|
g.FillEllipse(brush1, aag.position.X, aag.position.Y + 15, 15, 15);
|
|
|
|
|
g.FillEllipse(brush1, aag.position.X + 75, aag.position.Y + 15, 15, 15);
|
2024-03-14 16:09:51 +04:00
|
|
|
|
for (int i = 1; i <= aag.NumOfRollers - 2; i++)
|
2024-03-14 16:23:13 +04:00
|
|
|
|
g.FillEllipse(brush2, aag.position.X +(75/(aag.NumOfRollers-1))*i, aag.position.Y + 15, 15, 15);
|
2024-03-14 16:09:51 +04:00
|
|
|
|
|
|
|
|
|
// Отрисовка кузова
|
2024-03-14 16:23:13 +04:00
|
|
|
|
g.FillRectangle(brush1, aag.position.X + 15, aag.position.Y, 60, 15);
|
|
|
|
|
|
|
|
|
|
brush1.Dispose();
|
|
|
|
|
brush2.Dispose();
|
|
|
|
|
pen.Dispose();
|
2024-03-14 16:09:51 +04:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|