From 82bd7f3bcab1902bded54f9344faca7491e1f69b Mon Sep 17 00:00:00 2001 From: Kamil Haliullov Date: Fri, 23 Dec 2022 20:38:16 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A3=D1=81=D0=BB=D0=BE=D0=B6=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B5=D1=80=D0=B2=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=BB=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=BD?= =?UTF-8?q?=D0=BE=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AntiAircraftGun/CountRollers.cs | 15 ++++++++ .../AntiAircraftGun/DrawingAntiAircraftGun.cs | 8 ++-- .../DrawningAntiAircraftGunRollers.cs | 37 +++++++++++++++++++ .../FormAntiAircraftGun.Designer.cs | 29 ++++++++++++++- .../AntiAircraftGun/FormAntiAircraftGun.cs | 6 +-- 5 files changed, 85 insertions(+), 10 deletions(-) create mode 100644 AntiAircraftGun/AntiAircraftGun/CountRollers.cs create mode 100644 AntiAircraftGun/AntiAircraftGun/DrawningAntiAircraftGunRollers.cs diff --git a/AntiAircraftGun/AntiAircraftGun/CountRollers.cs b/AntiAircraftGun/AntiAircraftGun/CountRollers.cs new file mode 100644 index 0000000..3aa204b --- /dev/null +++ b/AntiAircraftGun/AntiAircraftGun/CountRollers.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AntiAircraftGun +{ + internal enum CountRollers + { + Four = 4, + Five = 5, + Six = 6, + } +} \ No newline at end of file diff --git a/AntiAircraftGun/AntiAircraftGun/DrawingAntiAircraftGun.cs b/AntiAircraftGun/AntiAircraftGun/DrawingAntiAircraftGun.cs index 05d9a74..ebb12f0 100644 --- a/AntiAircraftGun/AntiAircraftGun/DrawingAntiAircraftGun.cs +++ b/AntiAircraftGun/AntiAircraftGun/DrawingAntiAircraftGun.cs @@ -15,6 +15,7 @@ namespace AntiAircraftGun /// Класс-сущность /// public EntityAntiAircraftGun AntiAircraftGun { private set; get; } + public DrawningAntiAircraftGunRollers DrawningRollers { get; private set; } /// /// Левая координата отрисовки зенитного орудия /// @@ -49,6 +50,8 @@ namespace AntiAircraftGun { AntiAircraftGun = new EntityAntiAircraftGun(); AntiAircraftGun.Init(speed, weight, bodyColor); + DrawningRollers = new(); + DrawningRollers.CountRollers = 4; } /// /// Установка позиции зенитного орудия @@ -132,15 +135,12 @@ namespace AntiAircraftGun Brush brBlack = new SolidBrush(Color.Black); g.FillEllipse(brBlack, _startPosX +1, _startPosY + 21, 18, 18); g.FillEllipse(brBlack, _startPosX + 71, _startPosY + 21, 18, 18); - g.FillEllipse(brBlack, _startPosX + 19, _startPosY + 30, 11, 11); - g.FillEllipse(brBlack, _startPosX + 58, _startPosY + 30, 11, 11); - g.FillEllipse(brBlack, _startPosX + 32, _startPosY + 30, 11, 11); - g.FillEllipse(brBlack, _startPosX + 45, _startPosY + 30, 11, 11); //корпус Brush br = new SolidBrush(AntiAircraftGun?.BodyColor ?? Color.Black); g.FillRectangle(br, _startPosX + 20, _startPosY + 2, 50, 8); g.FillRectangle(br, _startPosX + 5, _startPosY + 10, 80, 15); g.FillEllipse(br, _startPosX + 6, _startPosY + 20, 78, 10); + DrawningRollers.DrawRollers(g, (int)_startPosX + 19, (int)_startPosY + 30, (int)_antiAircrafGunWidth); } /// /// Смена границ формы отрисовки diff --git a/AntiAircraftGun/AntiAircraftGun/DrawningAntiAircraftGunRollers.cs b/AntiAircraftGun/AntiAircraftGun/DrawningAntiAircraftGunRollers.cs new file mode 100644 index 0000000..41f623e --- /dev/null +++ b/AntiAircraftGun/AntiAircraftGun/DrawningAntiAircraftGunRollers.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AntiAircraftGun +{ + internal class DrawningAntiAircraftGunRollers + { + private CountRollers _countRollers; + + public int CountRollers + { + set + { + _countRollers = (CountRollers)(value); + } + } + + public void DrawRollers(Graphics g, int _startPosX, int _startPosY, int _antiAircrafGunWidth) + { + int left = _startPosX; + for (var i = 0; i < (int)_countRollers; i += 1) + { + DrawRoller(g, left, _startPosY); + left += 52 / (int)_countRollers; + } + } + + private void DrawRoller(Graphics g, int _startPosX, int _startPosY) + { + Brush brBlack = new SolidBrush(Color.Black); + g.FillEllipse(brBlack, _startPosX, _startPosY, 10, 10); + } + } +} diff --git a/AntiAircraftGun/AntiAircraftGun/FormAntiAircraftGun.Designer.cs b/AntiAircraftGun/AntiAircraftGun/FormAntiAircraftGun.Designer.cs index c6429cf..5362f59 100644 --- a/AntiAircraftGun/AntiAircraftGun/FormAntiAircraftGun.Designer.cs +++ b/AntiAircraftGun/AntiAircraftGun/FormAntiAircraftGun.Designer.cs @@ -38,6 +38,8 @@ this.buttonLeft = new System.Windows.Forms.Button(); this.buttonRight = new System.Windows.Forms.Button(); this.buttonDown = new System.Windows.Forms.Button(); + this.labelPortholes = new System.Windows.Forms.Label(); + this.comboBoxRollers = new System.Windows.Forms.ComboBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBoxAntiAircraftGun)).BeginInit(); this.statusStrip.SuspendLayout(); this.SuspendLayout(); @@ -52,7 +54,6 @@ this.pictureBoxAntiAircraftGun.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; this.pictureBoxAntiAircraftGun.TabIndex = 0; this.pictureBoxAntiAircraftGun.TabStop = false; - this.pictureBoxAntiAircraftGun.Click += new System.EventHandler(this.pictureBoxAntiAircraftGun_Click); this.pictureBoxAntiAircraftGun.Resize += new System.EventHandler(this.PictureBoxAntiAircraftGun_Resize); // // statusStrip @@ -150,11 +151,35 @@ this.buttonDown.UseVisualStyleBackColor = true; this.buttonDown.Click += new System.EventHandler(this.ButtonMove_Click); // + // labelPortholes + // + this.labelPortholes.AutoSize = true; + this.labelPortholes.Location = new System.Drawing.Point(98, 290); + this.labelPortholes.Name = "labelPortholes"; + this.labelPortholes.Size = new System.Drawing.Size(121, 15); + this.labelPortholes.TabIndex = 8; + this.labelPortholes.Text = "Колличество катков:"; + // + // comboBoxRollers + // + this.comboBoxRollers.FormattingEnabled = true; + this.comboBoxRollers.Items.AddRange(new object[] { + "4", + "5", + "6"}); + this.comboBoxRollers.Location = new System.Drawing.Point(225, 285); + this.comboBoxRollers.Name = "comboBoxRollers"; + this.comboBoxRollers.Size = new System.Drawing.Size(44, 23); + this.comboBoxRollers.TabIndex = 9; + this.comboBoxRollers.Text = "4"; + // // FormAntiAircraftGun // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(700, 338); + this.Controls.Add(this.comboBoxRollers); + this.Controls.Add(this.labelPortholes); this.Controls.Add(this.buttonDown); this.Controls.Add(this.buttonRight); this.Controls.Add(this.buttonLeft); @@ -187,5 +212,7 @@ private Button buttonLeft; private Button buttonRight; private Button buttonDown; + private Label labelPortholes; + private ComboBox comboBoxRollers; } } \ No newline at end of file diff --git a/AntiAircraftGun/AntiAircraftGun/FormAntiAircraftGun.cs b/AntiAircraftGun/AntiAircraftGun/FormAntiAircraftGun.cs index 2353718..a193087 100644 --- a/AntiAircraftGun/AntiAircraftGun/FormAntiAircraftGun.cs +++ b/AntiAircraftGun/AntiAircraftGun/FormAntiAircraftGun.cs @@ -35,6 +35,7 @@ namespace AntiAircraftGun _antiAircrafGun = new DrawingAntiAircraftGun(); _antiAircrafGun.Init(rnd.Next(100, 300), rnd.Next(1000, 2000), Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256))); + _antiAircrafGun.DrawningRollers.CountRollers = Convert.ToInt32(comboBoxRollers.Text); _antiAircrafGun.SetPosition(rnd.Next(10, 100), rnd.Next(10, 100), pictureBoxAntiAircraftGun.Width, pictureBoxAntiAircraftGun.Height); toolStripStatusLabelSpeed.Text = $": {_antiAircrafGun.AntiAircraftGun.Speed}"; @@ -78,10 +79,5 @@ namespace AntiAircraftGun _antiAircrafGun?.ChangeBorders(pictureBoxAntiAircraftGun.Width, pictureBoxAntiAircraftGun.Height); Draw(); } - - private void pictureBoxAntiAircraftGun_Click(object sender, EventArgs e) - { - - } } } \ No newline at end of file