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); Brush brush1 = new SolidBrush(aag.FirstColor); Brush brush2 = new SolidBrush(aag.SecondColor); // Отрисовка гусениц 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); // Отрисовка катков 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); for (int i = 1; i <= aag.NumOfRollers - 2; i++) g.FillEllipse(brush2, aag.position.X +(75/(aag.NumOfRollers-1))*i, aag.position.Y + 15, 15, 15); // Отрисовка кузова g.FillRectangle(brush1, aag.position.X + 15, aag.position.Y, 60, 15); brush1.Dispose(); brush2.Dispose(); pen.Dispose(); } } }