Усложнение первой лабораторной

This commit is contained in:
Kamil Haliullov 2022-12-23 20:38:16 +04:00
parent 557f5c50f4
commit 82bd7f3bca
5 changed files with 85 additions and 10 deletions

View File

@ -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,
}
}

View File

@ -15,6 +15,7 @@ namespace AntiAircraftGun
/// Класс-сущность
/// </summary>
public EntityAntiAircraftGun AntiAircraftGun { private set; get; }
public DrawningAntiAircraftGunRollers DrawningRollers { get; private set; }
/// <summary>
/// Левая координата отрисовки зенитного орудия
/// </summary>
@ -49,6 +50,8 @@ namespace AntiAircraftGun
{
AntiAircraftGun = new EntityAntiAircraftGun();
AntiAircraftGun.Init(speed, weight, bodyColor);
DrawningRollers = new();
DrawningRollers.CountRollers = 4;
}
/// <summary>
/// Установка позиции зенитного орудия
@ -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);
}
/// <summary>
/// Смена границ формы отрисовки

View File

@ -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);
}
}
}

View File

@ -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;
}
}

View File

@ -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)
{
}
}
}