This commit is contained in:
vv.timochkin 2025-02-17 13:54:10 +04:00
parent 7290e5e9ee
commit accd2d5f4d
2 changed files with 42 additions and 42 deletions

View File

@ -35,7 +35,7 @@ public class DrawingAntiAircraftGun
/// <summary> /// <summary>
/// Длина прорисовки зенитки /// Длина прорисовки зенитки
/// </summary> /// </summary>
private readonly int _drawingAntiAircraftGunWidth = 110; private readonly int _drawingAntiAircraftGunWidth = 100;
/// <summary> /// <summary>
/// Высота прорисовки зенитки /// Высота прорисовки зенитки
@ -70,8 +70,8 @@ public class DrawingAntiAircraftGun
/// <returns>true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах</returns> /// <returns>true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах</returns>
public bool SetPictureSize(int width, int height) public bool SetPictureSize(int width, int height)
{ {
// TODO проверка, что объект "влезает" в размеры поля if (_drawingAntiAircraftGunHeight > height || _drawingAntiAircraftGunWidth > width) return false;
// если влезает, сохраняем границы и корректируем позицию объекта, если она была уже установлена
_pictureWidth = width; _pictureWidth = width;
_pictureHeight = height; _pictureHeight = height;
return true; return true;
@ -89,8 +89,8 @@ public class DrawingAntiAircraftGun
return; return;
} }
// TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы if (x < 0 || y < 0 || x + _drawingAntiAircraftGunWidth > _pictureWidth || y + _drawingAntiAircraftGunHeight > _pictureHeight) return;
// то надо изменить координаты, чтобы он оставался в этих границах
_startPosX = x; _startPosX = x;
_startPosY = y; _startPosY = y;
} }
@ -156,56 +156,56 @@ public class DrawingAntiAircraftGun
return; return;
} }
Pen pen = new(Color.Black); Pen pen = new(EntityAntiAircraftGun.BodyColor);
Brush additionalBrush = new SolidBrush(EntityAntiAircraftGun.AdditionalColor); Pen additionalPen = new(EntityAntiAircraftGun.AdditionalColor);
//зенитные орудия //зенитные орудия
if (EntityAntiAircraftGun.AAG) if (EntityAntiAircraftGun.AAG)
{ {
g.DrawLine(pen, _startPosX.Value + 90, _startPosY.Value + 15, _startPosX.Value + 40, _startPosY.Value + 3);
g.DrawLine(pen, _startPosX.Value + 88, _startPosY.Value + 13, _startPosX.Value + 38, _startPosY.Value + 1); g.DrawLine(additionalPen, _startPosX.Value + 85, _startPosY.Value + 15, _startPosX.Value + 40, _startPosY.Value + 3);
g.DrawLine(pen, _startPosX.Value + 89, _startPosY.Value + 14, _startPosX.Value + 39, _startPosY.Value + 2); g.DrawLine(additionalPen, _startPosX.Value + 83, _startPosY.Value + 13, _startPosX.Value + 38, _startPosY.Value + 1);
g.DrawLine(additionalPen, _startPosX.Value + 84, _startPosY.Value + 14, _startPosX.Value + 39, _startPosY.Value + 2);
} }
//радар //радар
if (EntityAntiAircraftGun.Radar) if (EntityAntiAircraftGun.Radar)
{ {
g.DrawArc(pen, _startPosX.Value + 10, _startPosY.Value + 5, 20, 20, -45, 180); g.DrawArc(additionalPen, _startPosX.Value + 5, _startPosY.Value + 5, 20, 20, -45, 180);
g.DrawArc(pen, _startPosX.Value + 9, _startPosY.Value + 4, 20, 20, -45, 180); g.DrawArc(additionalPen, _startPosX.Value + 4, _startPosY.Value + 4, 20, 20, -45, 180);
g.DrawArc(pen, _startPosX.Value + 11, _startPosY.Value + 6, 20, 20, -45, 180); g.DrawArc(additionalPen, _startPosX.Value + 6, _startPosY.Value + 6, 20, 20, -45, 180);
} }
//гусеница //гусеница
g.DrawEllipse(pen, _startPosX.Value + 5, _startPosY.Value + 30, 100, g.DrawEllipse(pen, _startPosX.Value, _startPosY.Value + 30, 100,
30); 30);
//колеса для гусеницы //колеса для гусеницы
Brush brBlack = new SolidBrush(Color.Black); Brush brBlack = new SolidBrush(EntityAntiAircraftGun.BodyColor);
g.FillEllipse(brBlack, _startPosX.Value + 10, _startPosY.Value + 35, 20, g.FillEllipse(brBlack, _startPosX.Value + 5, _startPosY.Value + 35, 20,
20); 20);
g.FillEllipse(brBlack, _startPosX.Value + 80, _startPosY.Value + 35, 20, g.FillEllipse(brBlack, _startPosX.Value + 75, _startPosY.Value + 35, 20,
20); 20);
g.FillEllipse(brBlack, _startPosX.Value + 30, _startPosY.Value + 45, 10, g.FillEllipse(brBlack, _startPosX.Value + 25, _startPosY.Value + 45, 10,
10); 10);
g.FillEllipse(brBlack, _startPosX.Value + 60, _startPosY.Value + 45, 10, g.FillEllipse(brBlack, _startPosX.Value + 55, _startPosY.Value + 45, 10,
10); 10);
g.FillEllipse(brBlack, _startPosX.Value + 40, _startPosY.Value + 45, 10, g.FillEllipse(brBlack, _startPosX.Value + 35, _startPosY.Value + 45, 10,
10); 10);
g.FillEllipse(brBlack, _startPosX.Value + 50, _startPosY.Value + 45, 10, g.FillEllipse(brBlack, _startPosX.Value + 45, _startPosY.Value + 45, 10,
10); 10);
g.FillEllipse(brBlack, _startPosX.Value + 70, _startPosY.Value + 45, 10, g.FillEllipse(brBlack, _startPosX.Value + 65, _startPosY.Value + 45, 10,
10); 10);
//корпус+башня //корпус+башня
Brush brGreen = new SolidBrush(Color.DarkGreen); g.FillRectangle(brBlack, _startPosX.Value + 5, _startPosY.Value + 25, 90,
g.FillRectangle(brGreen, _startPosX.Value + 10, _startPosY.Value + 25, 90,
10); 10);
g.FillRectangle(brGreen, _startPosX.Value + 35, _startPosY.Value + 9, 30, g.FillRectangle(brBlack, _startPosX.Value + 30, _startPosY.Value + 9, 30,
15); 15);
} }
} }

View File

@ -13,14 +13,14 @@ namespace ProjectAntiAircraftGun
public partial class FormAntiAircraftGun : Form public partial class FormAntiAircraftGun : Form
{ {
private DrawingAntiAircraftGun? _drawingAntiAitcraftGun; private DrawingAntiAircraftGun? _drawingAntiAircraftGun;
public FormAntiAircraftGun() public FormAntiAircraftGun()
{ {
InitializeComponent(); InitializeComponent();
} }
private void Draw() private void Draw()
{ {
if (_drawingAntiAitcraftGun == null) if (_drawingAntiAircraftGun == null)
{ {
return; return;
} }
@ -28,7 +28,7 @@ namespace ProjectAntiAircraftGun
Bitmap bmp = new(pictureBoxAntiAircraftGun.Width, Bitmap bmp = new(pictureBoxAntiAircraftGun.Width,
pictureBoxAntiAircraftGun.Height); pictureBoxAntiAircraftGun.Height);
Graphics gr = Graphics.FromImage(bmp); Graphics gr = Graphics.FromImage(bmp);
_drawingAntiAitcraftGun.DrawTransport(gr); _drawingAntiAircraftGun.DrawTransport(gr);
pictureBoxAntiAircraftGun.Image = bmp; pictureBoxAntiAircraftGun.Image = bmp;
} }
@ -40,25 +40,25 @@ namespace ProjectAntiAircraftGun
private void buttonCreate_Click(object sender, EventArgs e) private void buttonCreate_Click(object sender, EventArgs e)
{ {
Random random = new(); Random random = new();
_drawingAntiAitcraftGun = new DrawingAntiAircraftGun(); _drawingAntiAircraftGun = new DrawingAntiAircraftGun();
_drawingAntiAitcraftGun.Init(random.Next(100, 300), random.Next(1000, _drawingAntiAircraftGun.Init(random.Next(100, 300), random.Next(1000,
3000), 3000),
Color.FromArgb(random.Next(0, 256)), Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)),
Color.FromArgb(random.Next(0, 256)), Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)),
Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)),
Convert.ToBoolean(random.Next(0, 2))); Convert.ToBoolean(random.Next(0, 2)));
_drawingAntiAitcraftGun.SetPictureSize(pictureBoxAntiAircraftGun.Width, _drawingAntiAircraftGun.SetPictureSize(pictureBoxAntiAircraftGun.Width,
pictureBoxAntiAircraftGun.Height); pictureBoxAntiAircraftGun.Height);
_drawingAntiAitcraftGun.SetPosition(random.Next(10, 100), random.Next(10, _drawingAntiAircraftGun.SetPosition(random.Next(10, 100), random.Next(10,
100)); 100));
Draw(); Draw();
} }
private void buttonMove_Click(object sender, EventArgs e) private void buttonMove_Click(object sender, EventArgs e)
{ {
if (_drawingAntiAitcraftGun == null) if (_drawingAntiAircraftGun == null)
{ {
return; return;
} }
@ -69,19 +69,19 @@ Convert.ToBoolean(random.Next(0, 2)));
{ {
case "buttonUp": case "buttonUp":
result = result =
_drawingAntiAitcraftGun.MoveTransport(DirectionType.Up); _drawingAntiAircraftGun.MoveTransport(DirectionType.Up);
break; break;
case "buttonDown": case "buttonDown":
result = result =
_drawingAntiAitcraftGun.MoveTransport(DirectionType.Down); _drawingAntiAircraftGun.MoveTransport(DirectionType.Down);
break; break;
case "buttonLeft": case "buttonLeft":
result = result =
_drawingAntiAitcraftGun.MoveTransport(DirectionType.Left); _drawingAntiAircraftGun.MoveTransport(DirectionType.Left);
break; break;
case "buttonRight": case "buttonRight":
result = result =
_drawingAntiAitcraftGun.MoveTransport(DirectionType.Right); _drawingAntiAircraftGun.MoveTransport(DirectionType.Right);
break; break;
} }