diff --git a/AirFighter/AirFighter.csproj b/AirFighter/AirFighter.csproj
index 103a83c..567c22c 100644
--- a/AirFighter/AirFighter.csproj
+++ b/AirFighter/AirFighter.csproj
@@ -10,6 +10,7 @@
+
diff --git a/AirFighter/AirplaneDelegate.cs b/AirFighter/AirplaneDelegate.cs
new file mode 100644
index 0000000..bf3c079
--- /dev/null
+++ b/AirFighter/AirplaneDelegate.cs
@@ -0,0 +1,11 @@
+using ProjectAirFighter.DrawningObjects;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ProjectAirFighter
+{
+ public delegate void AirplaneDelegate(DrawningAirplane airplane);
+}
diff --git a/AirFighter/AirplaneGenericCollection.cs b/AirFighter/AirplaneGenericCollection.cs
index a762584..e709ee1 100644
--- a/AirFighter/AirplaneGenericCollection.cs
+++ b/AirFighter/AirplaneGenericCollection.cs
@@ -84,7 +84,7 @@ pos)
if (airplane != null)
{
int inRow = _pictureWidth / _placeSizeWidth;
- airplane.SetPosition(_pictureWidth - _placeSizeWidth - (i % inRow * _placeSizeWidth) - _placeSizeWidth / 8 * 3, _pictureHeight - _pictureHeight % _placeSizeHeight - (i / inRow + 1) * _placeSizeHeight + (_placeSizeHeight - _placeSizeHeight * 170 / 1000) / 2);
+ airplane.SetPosition(_pictureWidth - _placeSizeWidth - (i % inRow * _placeSizeWidth) - _placeSizeWidth / 24, _pictureHeight - _pictureHeight % _placeSizeHeight - (i / inRow + 1) * _placeSizeHeight + (_placeSizeHeight - _placeSizeHeight * 170 / 1000) / 2);
airplane.DrawTransport(g);
diff --git a/AirFighter/DrawningAirFighter.cs b/AirFighter/DrawningAirFighter.cs
index 88a698b..449fa4c 100644
--- a/AirFighter/DrawningAirFighter.cs
+++ b/AirFighter/DrawningAirFighter.cs
@@ -1,4 +1,10 @@
using ProjectAirFighter.Entities;
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
namespace ProjectAirFighter.DrawningObjects
{
@@ -13,7 +19,11 @@ namespace ProjectAirFighter.DrawningObjects
EntityAirplane = new EntityAirFighter(speed, weight, bodyColor, additionalColor, racket, wing);
}
}
-
+
+ public void ChangeAddColor(Color col)
+ {
+ ((EntityAirFighter)EntityAirplane).AdditionalColor = col;
+ }
public override void DrawTransport(Graphics g)
{
if (EntityAirplane is not EntityAirFighter airFighter)
diff --git a/AirFighter/DrawningAirplane.cs b/AirFighter/DrawningAirplane.cs
index 59d9b6d..3b0f398 100644
--- a/AirFighter/DrawningAirplane.cs
+++ b/AirFighter/DrawningAirplane.cs
@@ -50,7 +50,18 @@ width, int height, int airplaneWidth, int airplaneHeight)
EntityAirplane = new EntityAirplane(speed, weight, bodyColor);
}
+ public void ChangeColor(Color col)
+ {
+ if (EntityAirplane == null)
+ return;
+ EntityAirplane.BodyColor= col;
+ }
+ public void ChangePictureBoxSize(int pictureBoxWidth, int pictureBoxHeight)
+ {
+ _pictureHeight = pictureBoxHeight;
+ _pictureWidth = pictureBoxWidth;
+ }
public void SetPosition(int x, int y)
{
if (EntityAirplane == null)
diff --git a/AirFighter/EntityAirFighter.cs b/AirFighter/EntityAirFighter.cs
index ceecf1b..f5ad477 100644
--- a/AirFighter/EntityAirFighter.cs
+++ b/AirFighter/EntityAirFighter.cs
@@ -9,7 +9,7 @@ namespace ProjectAirFighter.Entities
{
public class EntityAirFighter: EntityAirplane
{
- public Color AdditionalColor { get; private set; }
+ public Color AdditionalColor { get; set; }
public bool Racket { get; private set; }
public bool Wing { get; private set; }
diff --git a/AirFighter/EntityAirplane.cs b/AirFighter/EntityAirplane.cs
index 1882c32..27635a5 100644
--- a/AirFighter/EntityAirplane.cs
+++ b/AirFighter/EntityAirplane.cs
@@ -10,7 +10,7 @@ namespace ProjectAirFighter.Entities
{
public int Speed { get; private set; }
public double Weight { get; private set; }
- public Color BodyColor { get; private set; }
+ public Color BodyColor { get; set; }
public double Step => (double)Speed * 100 / Weight;
public EntityAirplane(int speed, double weight, Color bodyColor)
diff --git a/AirFighter/FormAirplaneCollection.Designer.cs b/AirFighter/FormAirplaneCollection.Designer.cs
index 879ade1..66aa308 100644
--- a/AirFighter/FormAirplaneCollection.Designer.cs
+++ b/AirFighter/FormAirplaneCollection.Designer.cs
@@ -51,16 +51,16 @@
this.toolGroupBox.Controls.Add(this.updateCollectionButton);
this.toolGroupBox.Controls.Add(this.deleteAirplaneButton);
this.toolGroupBox.Controls.Add(this.addAirplaneButton);
- this.toolGroupBox.Location = new System.Drawing.Point(744, 12);
+ this.toolGroupBox.Location = new System.Drawing.Point(769, 12);
this.toolGroupBox.Name = "toolGroupBox";
- this.toolGroupBox.Size = new System.Drawing.Size(223, 530);
+ this.toolGroupBox.Size = new System.Drawing.Size(232, 632);
this.toolGroupBox.TabIndex = 0;
this.toolGroupBox.TabStop = false;
this.toolGroupBox.Text = "Инструменты";
//
// maskedTextBoxNumber
//
- this.maskedTextBoxNumber.Location = new System.Drawing.Point(-2, 367);
+ this.maskedTextBoxNumber.Location = new System.Drawing.Point(7, 387);
this.maskedTextBoxNumber.Name = "maskedTextBoxNumber";
this.maskedTextBoxNumber.Size = new System.Drawing.Size(215, 27);
this.maskedTextBoxNumber.TabIndex = 7;
@@ -71,7 +71,7 @@
this.kitGroupbox.Controls.Add(this.ButtonDelObject);
this.kitGroupbox.Controls.Add(this.ButtonAddObject);
this.kitGroupbox.Controls.Add(this.listBoxStorages);
- this.kitGroupbox.Location = new System.Drawing.Point(6, 26);
+ this.kitGroupbox.Location = new System.Drawing.Point(8, 39);
this.kitGroupbox.Name = "kitGroupbox";
this.kitGroupbox.Size = new System.Drawing.Size(217, 280);
this.kitGroupbox.TabIndex = 5;
@@ -80,9 +80,9 @@
//
// textBoxStorageName
//
- this.textBoxStorageName.Location = new System.Drawing.Point(23, 26);
+ this.textBoxStorageName.Location = new System.Drawing.Point(23, 27);
this.textBoxStorageName.Name = "textBoxStorageName";
- this.textBoxStorageName.Size = new System.Drawing.Size(184, 27);
+ this.textBoxStorageName.Size = new System.Drawing.Size(185, 27);
this.textBoxStorageName.TabIndex = 9;
//
// ButtonDelObject
@@ -97,7 +97,7 @@
//
// ButtonAddObject
//
- this.ButtonAddObject.Location = new System.Drawing.Point(23, 59);
+ this.ButtonAddObject.Location = new System.Drawing.Point(23, 63);
this.ButtonAddObject.Name = "ButtonAddObject";
this.ButtonAddObject.Size = new System.Drawing.Size(184, 29);
this.ButtonAddObject.TabIndex = 7;
@@ -109,15 +109,14 @@
//
this.listBoxStorages.FormattingEnabled = true;
this.listBoxStorages.ItemHeight = 20;
- this.listBoxStorages.Location = new System.Drawing.Point(23, 106);
+ this.listBoxStorages.Location = new System.Drawing.Point(23, 107);
this.listBoxStorages.Name = "listBoxStorages";
- this.listBoxStorages.Size = new System.Drawing.Size(184, 104);
+ this.listBoxStorages.Size = new System.Drawing.Size(185, 104);
this.listBoxStorages.TabIndex = 6;
- this.listBoxStorages.Click += new System.EventHandler(this.listBoxStorages_SelectedIndexChanged);
//
// updateCollectionButton
//
- this.updateCollectionButton.Location = new System.Drawing.Point(-2, 471);
+ this.updateCollectionButton.Location = new System.Drawing.Point(6, 484);
this.updateCollectionButton.Name = "updateCollectionButton";
this.updateCollectionButton.Size = new System.Drawing.Size(215, 40);
this.updateCollectionButton.TabIndex = 3;
@@ -127,7 +126,7 @@
//
// deleteAirplaneButton
//
- this.deleteAirplaneButton.Location = new System.Drawing.Point(-2, 409);
+ this.deleteAirplaneButton.Location = new System.Drawing.Point(7, 439);
this.deleteAirplaneButton.Name = "deleteAirplaneButton";
this.deleteAirplaneButton.Size = new System.Drawing.Size(215, 40);
this.deleteAirplaneButton.TabIndex = 2;
@@ -137,7 +136,7 @@
//
// addAirplaneButton
//
- this.addAirplaneButton.Location = new System.Drawing.Point(0, 312);
+ this.addAirplaneButton.Location = new System.Drawing.Point(8, 324);
this.addAirplaneButton.Name = "addAirplaneButton";
this.addAirplaneButton.Size = new System.Drawing.Size(215, 40);
this.addAirplaneButton.TabIndex = 0;
@@ -149,7 +148,7 @@
//
this.pictureBoxCollection.Location = new System.Drawing.Point(12, 12);
this.pictureBoxCollection.Name = "pictureBoxCollection";
- this.pictureBoxCollection.Size = new System.Drawing.Size(726, 524);
+ this.pictureBoxCollection.Size = new System.Drawing.Size(675, 632);
this.pictureBoxCollection.TabIndex = 1;
this.pictureBoxCollection.TabStop = false;
//
@@ -157,7 +156,7 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(980, 548);
+ this.ClientSize = new System.Drawing.Size(1017, 654);
this.Controls.Add(this.pictureBoxCollection);
this.Controls.Add(this.toolGroupBox);
this.Name = "FormAirplaneCollection";
@@ -173,11 +172,11 @@
#endregion
- private System.Windows.Forms.GroupBox toolGroupBox;
- private System.Windows.Forms.Button updateCollectionButton;
- private System.Windows.Forms.Button deleteAirplaneButton;
- private System.Windows.Forms.Button addAirplaneButton;
- private System.Windows.Forms.PictureBox pictureBoxCollection;
+ private GroupBox toolGroupBox;
+ private Button updateCollectionButton;
+ private Button deleteAirplaneButton;
+ private Button addAirplaneButton;
+ private PictureBox pictureBoxCollection;
private GroupBox kitGroupbox;
private Button ButtonAddObject;
private ListBox listBoxStorages;
diff --git a/AirFighter/FormAirplaneCollection.cs b/AirFighter/FormAirplaneCollection.cs
index a52dfec..5b1d39a 100644
--- a/AirFighter/FormAirplaneCollection.cs
+++ b/AirFighter/FormAirplaneCollection.cs
@@ -42,7 +42,6 @@ namespace ProjectAirFighter
{
listBoxStorages.SelectedIndex = index;
}
-
}
private void ButtonAddObject_Click(object sender, EventArgs e)
{
@@ -113,10 +112,12 @@ namespace ProjectAirFighter
{
return;
}
- FormAirFighter form = new();
- if (form.ShowDialog() == DialogResult.OK)
+ FormAirplaneConfig form = new();
+ form.Show();
+ Action? airplaneDelegate = new((m) =>
{
- if (obj + form.SelectedAirplane)
+ bool q = (obj + m);
+ if (q)
{
MessageBox.Show("Объект добавлен");
pictureBoxCollection.Image = obj.ShowAirplanes();
@@ -125,8 +126,8 @@ namespace ProjectAirFighter
{
MessageBox.Show("Не удалось добавить объект");
}
-
- }
+ });
+ form.AddEvent(airplaneDelegate);
}
private void listBoxStorages_SelectedIndexChanged(object sender, EventArgs e)
{
diff --git a/AirFighter/FormAirplaneConfig.Designer.cs b/AirFighter/FormAirplaneConfig.Designer.cs
new file mode 100644
index 0000000..1a8e85e
--- /dev/null
+++ b/AirFighter/FormAirplaneConfig.Designer.cs
@@ -0,0 +1,391 @@
+namespace ProjectAirFighter
+{
+ partial class FormAirplaneConfig
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.configGroupBox = new System.Windows.Forms.GroupBox();
+ this.colorGroupBox = new System.Windows.Forms.GroupBox();
+ this.yellowPanel = new System.Windows.Forms.Panel();
+ this.bluePanel = new System.Windows.Forms.Panel();
+ this.greenPanel = new System.Windows.Forms.Panel();
+ this.purplePanel = new System.Windows.Forms.Panel();
+ this.blackPanel = new System.Windows.Forms.Panel();
+ this.greyPanel = new System.Windows.Forms.Panel();
+ this.whitePanel = new System.Windows.Forms.Panel();
+ this.redPanel = new System.Windows.Forms.Panel();
+ this.airfighterLabel = new System.Windows.Forms.Label();
+ this.airplaneLabel = new System.Windows.Forms.Label();
+ this.checkwing = new System.Windows.Forms.CheckBox();
+ this.checkracket = new System.Windows.Forms.CheckBox();
+ this.numericWeight = new System.Windows.Forms.NumericUpDown();
+ this.numericSpeed = new System.Windows.Forms.NumericUpDown();
+ this.weightLabel = new System.Windows.Forms.Label();
+ this.speedLabel = new System.Windows.Forms.Label();
+ this.allowPanel = new System.Windows.Forms.Panel();
+ this.addColorLabel = new System.Windows.Forms.Label();
+ this.pictureBox = new System.Windows.Forms.PictureBox();
+ this.colorLabel = new System.Windows.Forms.Label();
+ this.addButton = new System.Windows.Forms.Button();
+ this.cancelButton = new System.Windows.Forms.Button();
+ this.configGroupBox.SuspendLayout();
+ this.colorGroupBox.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericWeight)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericSpeed)).BeginInit();
+ this.allowPanel.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
+ this.SuspendLayout();
+ //
+ // configGroupBox
+ //
+ this.configGroupBox.Controls.Add(this.colorGroupBox);
+ this.configGroupBox.Controls.Add(this.airfighterLabel);
+ this.configGroupBox.Controls.Add(this.airplaneLabel);
+ this.configGroupBox.Controls.Add(this.checkwing);
+ this.configGroupBox.Controls.Add(this.checkracket);
+ this.configGroupBox.Controls.Add(this.numericWeight);
+ this.configGroupBox.Controls.Add(this.numericSpeed);
+ this.configGroupBox.Controls.Add(this.weightLabel);
+ this.configGroupBox.Controls.Add(this.speedLabel);
+ this.configGroupBox.Location = new System.Drawing.Point(11, 12);
+ this.configGroupBox.Name = "configGroupBox";
+ this.configGroupBox.Size = new System.Drawing.Size(446, 279);
+ this.configGroupBox.TabIndex = 0;
+ this.configGroupBox.TabStop = false;
+ this.configGroupBox.Text = "Параметры";
+ //
+ // colorGroupBox
+ //
+ this.colorGroupBox.Controls.Add(this.yellowPanel);
+ this.colorGroupBox.Controls.Add(this.bluePanel);
+ this.colorGroupBox.Controls.Add(this.greenPanel);
+ this.colorGroupBox.Controls.Add(this.purplePanel);
+ this.colorGroupBox.Controls.Add(this.blackPanel);
+ this.colorGroupBox.Controls.Add(this.greyPanel);
+ this.colorGroupBox.Controls.Add(this.whitePanel);
+ this.colorGroupBox.Controls.Add(this.redPanel);
+ this.colorGroupBox.Location = new System.Drawing.Point(171, 23);
+ this.colorGroupBox.Name = "colorGroupBox";
+ this.colorGroupBox.Size = new System.Drawing.Size(234, 143);
+ this.colorGroupBox.TabIndex = 7;
+ this.colorGroupBox.TabStop = false;
+ this.colorGroupBox.Text = "Цвета";
+ //
+ // yellowPanel
+ //
+ this.yellowPanel.AllowDrop = true;
+ this.yellowPanel.BackColor = System.Drawing.Color.Yellow;
+ this.yellowPanel.Location = new System.Drawing.Point(174, 27);
+ this.yellowPanel.Name = "yellowPanel";
+ this.yellowPanel.Size = new System.Drawing.Size(50, 51);
+ this.yellowPanel.TabIndex = 3;
+ //
+ // bluePanel
+ //
+ this.bluePanel.AllowDrop = true;
+ this.bluePanel.BackColor = System.Drawing.Color.Blue;
+ this.bluePanel.Location = new System.Drawing.Point(118, 27);
+ this.bluePanel.Name = "bluePanel";
+ this.bluePanel.Size = new System.Drawing.Size(50, 51);
+ this.bluePanel.TabIndex = 2;
+ //
+ // greenPanel
+ //
+ this.greenPanel.AllowDrop = true;
+ this.greenPanel.BackColor = System.Drawing.Color.Green;
+ this.greenPanel.Location = new System.Drawing.Point(62, 27);
+ this.greenPanel.Name = "greenPanel";
+ this.greenPanel.Size = new System.Drawing.Size(50, 51);
+ this.greenPanel.TabIndex = 1;
+ //
+ // purplePanel
+ //
+ this.purplePanel.AllowDrop = true;
+ this.purplePanel.BackColor = System.Drawing.Color.Purple;
+ this.purplePanel.Location = new System.Drawing.Point(174, 83);
+ this.purplePanel.Name = "purplePanel";
+ this.purplePanel.Size = new System.Drawing.Size(50, 51);
+ this.purplePanel.TabIndex = 3;
+ //
+ // blackPanel
+ //
+ this.blackPanel.AllowDrop = true;
+ this.blackPanel.BackColor = System.Drawing.Color.Black;
+ this.blackPanel.Location = new System.Drawing.Point(118, 83);
+ this.blackPanel.Name = "blackPanel";
+ this.blackPanel.Size = new System.Drawing.Size(50, 51);
+ this.blackPanel.TabIndex = 2;
+ //
+ // greyPanel
+ //
+ this.greyPanel.AllowDrop = true;
+ this.greyPanel.BackColor = System.Drawing.Color.Silver;
+ this.greyPanel.Location = new System.Drawing.Point(62, 83);
+ this.greyPanel.Name = "greyPanel";
+ this.greyPanel.Size = new System.Drawing.Size(50, 51);
+ this.greyPanel.TabIndex = 1;
+ //
+ // whitePanel
+ //
+ this.whitePanel.AllowDrop = true;
+ this.whitePanel.BackColor = System.Drawing.Color.White;
+ this.whitePanel.Location = new System.Drawing.Point(6, 83);
+ this.whitePanel.Name = "whitePanel";
+ this.whitePanel.Size = new System.Drawing.Size(50, 51);
+ this.whitePanel.TabIndex = 1;
+ //
+ // redPanel
+ //
+ this.redPanel.AllowDrop = true;
+ this.redPanel.BackColor = System.Drawing.Color.Red;
+ this.redPanel.Location = new System.Drawing.Point(6, 27);
+ this.redPanel.Name = "redPanel";
+ this.redPanel.Size = new System.Drawing.Size(50, 51);
+ this.redPanel.TabIndex = 0;
+ //
+ // airfighterLabel
+ //
+ this.airfighterLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.airfighterLabel.Location = new System.Drawing.Point(297, 169);
+ this.airfighterLabel.Name = "airfighterLabel";
+ this.airfighterLabel.Size = new System.Drawing.Size(120, 50);
+ this.airfighterLabel.TabIndex = 9;
+ this.airfighterLabel.Text = "Продвинутый";
+ this.airfighterLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // airplaneLabel
+ //
+ this.airplaneLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.airplaneLabel.Location = new System.Drawing.Point(171, 169);
+ this.airplaneLabel.Name = "airplaneLabel";
+ this.airplaneLabel.Size = new System.Drawing.Size(120, 50);
+ this.airplaneLabel.TabIndex = 8;
+ this.airplaneLabel.Text = "Простой";
+ this.airplaneLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // checkwing
+ //
+ this.checkwing.AutoSize = true;
+ this.checkwing.Location = new System.Drawing.Point(6, 163);
+ this.checkwing.Name = "checkwing";
+ this.checkwing.Size = new System.Drawing.Size(183, 24);
+ this.checkwing.TabIndex = 5;
+ this.checkwing.Text = "наличие доп крыльев";
+ this.checkwing.UseVisualStyleBackColor = true;
+ //
+ // checkracket
+ //
+ this.checkracket.AutoSize = true;
+ this.checkracket.Location = new System.Drawing.Point(6, 132);
+ this.checkracket.Name = "checkracket";
+ this.checkracket.Size = new System.Drawing.Size(132, 24);
+ this.checkracket.TabIndex = 4;
+ this.checkracket.Text = "наличие ракет";
+ this.checkracket.UseVisualStyleBackColor = true;
+ //
+ // numericWeight
+ //
+ this.numericWeight.Location = new System.Drawing.Point(6, 99);
+ this.numericWeight.Maximum = new decimal(new int[] {
+ 1000,
+ 0,
+ 0,
+ 0});
+ this.numericWeight.Minimum = new decimal(new int[] {
+ 100,
+ 0,
+ 0,
+ 0});
+ this.numericWeight.Name = "numericWeight";
+ this.numericWeight.Size = new System.Drawing.Size(150, 27);
+ this.numericWeight.TabIndex = 3;
+ this.numericWeight.Value = new decimal(new int[] {
+ 100,
+ 0,
+ 0,
+ 0});
+ //
+ // numericSpeed
+ //
+ this.numericSpeed.Location = new System.Drawing.Point(6, 45);
+ this.numericSpeed.Maximum = new decimal(new int[] {
+ 1000,
+ 0,
+ 0,
+ 0});
+ this.numericSpeed.Minimum = new decimal(new int[] {
+ 100,
+ 0,
+ 0,
+ 0});
+ this.numericSpeed.Name = "numericSpeed";
+ this.numericSpeed.Size = new System.Drawing.Size(150, 27);
+ this.numericSpeed.TabIndex = 2;
+ this.numericSpeed.Value = new decimal(new int[] {
+ 100,
+ 0,
+ 0,
+ 0});
+ //
+ // weightLabel
+ //
+ this.weightLabel.AutoSize = true;
+ this.weightLabel.Location = new System.Drawing.Point(6, 76);
+ this.weightLabel.Name = "weightLabel";
+ this.weightLabel.Size = new System.Drawing.Size(33, 20);
+ this.weightLabel.TabIndex = 1;
+ this.weightLabel.Text = "Вес";
+ //
+ // speedLabel
+ //
+ this.speedLabel.AutoSize = true;
+ this.speedLabel.Location = new System.Drawing.Point(6, 23);
+ this.speedLabel.Name = "speedLabel";
+ this.speedLabel.Size = new System.Drawing.Size(73, 20);
+ this.speedLabel.TabIndex = 0;
+ this.speedLabel.Text = "Скорость";
+ //
+ // allowPanel
+ //
+ this.allowPanel.AllowDrop = true;
+ this.allowPanel.Controls.Add(this.addColorLabel);
+ this.allowPanel.Controls.Add(this.pictureBox);
+ this.allowPanel.Controls.Add(this.colorLabel);
+ this.allowPanel.Location = new System.Drawing.Point(463, 12);
+ this.allowPanel.Name = "allowPanel";
+ this.allowPanel.Size = new System.Drawing.Size(819, 642);
+ this.allowPanel.TabIndex = 1;
+ this.allowPanel.DragDrop += new System.Windows.Forms.DragEventHandler(this.allowPanel_DragDrop);
+ this.allowPanel.DragEnter += new System.Windows.Forms.DragEventHandler(this.allowPanel_DragEnter);
+ //
+ // addColorLabel
+ //
+ this.addColorLabel.AllowDrop = true;
+ this.addColorLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.addColorLabel.Location = new System.Drawing.Point(470, 17);
+ this.addColorLabel.Name = "addColorLabel";
+ this.addColorLabel.Size = new System.Drawing.Size(104, 33);
+ this.addColorLabel.TabIndex = 2;
+ this.addColorLabel.Text = "Доп. цвет";
+ this.addColorLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.addColorLabel.DragDrop += new System.Windows.Forms.DragEventHandler(this.addColorLabel_DragDrop);
+ this.addColorLabel.DragEnter += new System.Windows.Forms.DragEventHandler(this.colorLabel_DragEnter);
+ //
+ // pictureBox
+ //
+ this.pictureBox.Location = new System.Drawing.Point(17, 51);
+ this.pictureBox.Name = "pictureBox";
+ this.pictureBox.Size = new System.Drawing.Size(787, 575);
+ this.pictureBox.TabIndex = 0;
+ this.pictureBox.TabStop = false;
+ //
+ // colorLabel
+ //
+ this.colorLabel.AllowDrop = true;
+ this.colorLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.colorLabel.Location = new System.Drawing.Point(172, 10);
+ this.colorLabel.Name = "colorLabel";
+ this.colorLabel.Size = new System.Drawing.Size(104, 33);
+ this.colorLabel.TabIndex = 1;
+ this.colorLabel.Text = "Цвет";
+ this.colorLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.colorLabel.DragDrop += new System.Windows.Forms.DragEventHandler(this.colorLabel_DragDrop);
+ this.colorLabel.DragEnter += new System.Windows.Forms.DragEventHandler(this.colorLabel_DragEnter);
+ //
+ // addButton
+ //
+ this.addButton.Location = new System.Drawing.Point(710, 660);
+ this.addButton.Name = "addButton";
+ this.addButton.Size = new System.Drawing.Size(94, 29);
+ this.addButton.TabIndex = 2;
+ this.addButton.Text = "Добавить";
+ this.addButton.UseVisualStyleBackColor = true;
+ this.addButton.Click += new System.EventHandler(this.addButton_Click);
+ //
+ // cancelButton
+ //
+ this.cancelButton.Location = new System.Drawing.Point(1042, 660);
+ this.cancelButton.Name = "cancelButton";
+ this.cancelButton.Size = new System.Drawing.Size(94, 29);
+ this.cancelButton.TabIndex = 3;
+ this.cancelButton.Text = "Отменить";
+ this.cancelButton.UseVisualStyleBackColor = true;
+ //
+ // FormAirplaneConfig
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(1294, 701);
+ this.Controls.Add(this.cancelButton);
+ this.Controls.Add(this.addButton);
+ this.Controls.Add(this.allowPanel);
+ this.Controls.Add(this.configGroupBox);
+ this.Name = "FormAirplaneConfig";
+ this.Text = "FormMonorailConfig";
+ this.configGroupBox.ResumeLayout(false);
+ this.configGroupBox.PerformLayout();
+ this.colorGroupBox.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.numericWeight)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericSpeed)).EndInit();
+ this.allowPanel.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private GroupBox configGroupBox;
+ private CheckBox checkracket;
+ private NumericUpDown numericWeight;
+ private NumericUpDown numericSpeed;
+ private Label weightLabel;
+ private Label speedLabel;
+ private CheckBox checkwing;
+ private GroupBox colorGroupBox;
+ private Panel panel5;
+ private Panel panel4;
+ private Panel panel3;
+ private Panel panel2;
+ private Panel redPanel;
+ private Panel purplePanel;
+ private Panel blackPanel;
+ private Panel greyPanel;
+ private Panel whitePanel;
+ private Label airfighterLabel;
+ private Label airplaneLabel;
+ private Panel yellowPanel;
+ private Panel bluePanel;
+ private Panel greenPanel;
+ private Panel allowPanel;
+ private PictureBox pictureBox;
+ private Label addColorLabel;
+ private Label colorLabel;
+ private Button addButton;
+ private Button cancelButton;
+ }
+}
\ No newline at end of file
diff --git a/AirFighter/FormAirplaneConfig.cs b/AirFighter/FormAirplaneConfig.cs
new file mode 100644
index 0000000..7e4d2ca
--- /dev/null
+++ b/AirFighter/FormAirplaneConfig.cs
@@ -0,0 +1,141 @@
+using ProjectAirFighter.DrawningObjects;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace ProjectAirFighter
+{
+ public partial class FormAirplaneConfig : Form
+ {
+ DrawningAirplane? _airplane = null;
+
+ private event Action? EventAddAirplane;
+ public void AddEvent(Action ev)
+ {
+ if (EventAddAirplane == null)
+ {
+ EventAddAirplane = ev;
+ }
+ else
+ {
+ EventAddAirplane += ev;
+ }
+ }
+
+ public FormAirplaneConfig()
+ {
+ InitializeComponent();
+ blackPanel.MouseDown += PanelColor_MouseDown;
+ greenPanel.MouseDown += PanelColor_MouseDown;
+ redPanel.MouseDown += PanelColor_MouseDown;
+ bluePanel.MouseDown += PanelColor_MouseDown;
+ greyPanel.MouseDown += PanelColor_MouseDown;
+ yellowPanel.MouseDown += PanelColor_MouseDown;
+ purplePanel.MouseDown += PanelColor_MouseDown;
+ whitePanel.MouseDown += PanelColor_MouseDown;
+ airplaneLabel.MouseDown += LabelObject_MouseDown;
+ airfighterLabel.MouseDown += LabelObject_MouseDown;
+ cancelButton.Click += (s, e) => Close();
+ }
+
+ public void DrawAirplane()
+ {
+ Bitmap bmp = new Bitmap(pictureBox.Width, pictureBox.Height);
+ Graphics gr = Graphics.FromImage(bmp);
+ _airplane?.SetPosition(5, 70);
+ _airplane?.DrawTransport(gr);
+ pictureBox.Image = bmp;
+ }
+
+ private void PanelColor_MouseDown(object sender, MouseEventArgs e)
+ {
+ (sender as Panel)?.DoDragDrop((sender as Panel)?.BackColor,
+DragDropEffects.Move | DragDropEffects.Copy);
+
+ }
+
+ private void allowPanel_DragDrop(object sender, DragEventArgs e)
+ {
+ switch (e.Data?.GetData(DataFormats.Text).ToString())
+ {
+ case "airplaneLabel":
+ _airplane = new DrawningAirplane((int)numericSpeed.Value,
+ (int)numericWeight.Value, Color.White, pictureBox.Width,
+ pictureBox.Height);
+ break;
+ case "airfighterLabel":
+ _airplane = new DrawningAirFighter((int)numericSpeed.Value,
+ (int)numericWeight.Value, Color.White, Color.Silver, checkracket.Checked, checkwing.Checked, pictureBox.Width,
+ pictureBox.Height);
+ break;
+ }
+ colorLabel.BackColor = Color.Empty;
+ addColorLabel.BackColor = Color.Empty;
+ DrawAirplane();
+
+ }
+
+ private void allowPanel_DragEnter(object sender, DragEventArgs e)
+ {
+ if (e.Data?.GetDataPresent(DataFormats.Text) ?? false)
+ {
+ e.Effect = DragDropEffects.Copy;
+ }
+ else
+ {
+ e.Effect = DragDropEffects.None;
+ }
+
+ }
+
+ private void addButton_Click(object sender, EventArgs e)
+ {
+ EventAddAirplane?.Invoke(_airplane);
+ Close();
+ }
+
+ private void LabelObject_MouseDown(object sender, MouseEventArgs e)
+ {
+ (sender as Label)?.DoDragDrop((sender as Label)?.Name, DragDropEffects.Move | DragDropEffects.Copy);
+ }
+
+
+ private void colorLabel_DragDrop(object sender, DragEventArgs e)
+ {
+ if (_airplane == null)
+ return;
+ colorLabel.BackColor = (Color)e.Data.GetData(typeof(Color));
+ _airplane.ChangeColor(colorLabel.BackColor);
+ DrawAirplane();
+ }
+
+ private void colorLabel_DragEnter(object sender, DragEventArgs e)
+ {
+ if (e.Data.GetDataPresent(typeof(Color)))
+ {
+ e.Effect = DragDropEffects.Copy;
+ }
+ else
+ {
+ e.Effect = DragDropEffects.None;
+ }
+ }
+
+ private void addColorLabel_DragDrop(object sender, DragEventArgs e)
+ {
+ if ((_airplane == null) || (_airplane is DrawningAirFighter == false))
+ return;
+ addColorLabel.BackColor = (Color)e.Data.GetData(typeof(Color));
+ ((DrawningAirFighter)_airplane).ChangeAddColor(addColorLabel.BackColor);
+ DrawAirplane();
+ }
+
+
+ }
+}
diff --git a/AirFighter/FormAirplaneConfig.resx b/AirFighter/FormAirplaneConfig.resx
new file mode 100644
index 0000000..f298a7b
--- /dev/null
+++ b/AirFighter/FormAirplaneConfig.resx
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file