From 9dd23a69957aacf6a6fd1d09b944b9500bdae1d1 Mon Sep 17 00:00:00 2001 From: Almaz <79022113685@mail.ru> Date: Tue, 9 Apr 2024 08:46:46 +0400 Subject: [PATCH 1/2] =?UTF-8?q?=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=20"?= =?UTF-8?q?=D0=BA=D1=80=D0=B5=D0=B9=D1=81=D0=B5=D1=80",=20=D0=BD=D0=BE=20?= =?UTF-8?q?=D0=B1=D0=B5=D0=B7=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=D0=B2?= =?UTF-8?q?=D0=B8=D0=B3=D0=B0=D1=82=D1=8C=D1=81=D1=8F.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectCruiser/DirectionType.cs | 31 +++ .../ProjectCruiser/DrawingCruiser.cs | 209 ++++++++++++++++++ .../ProjectCruiser/EntityCruiser.cs | 69 ++++++ .../ProjectCruiser/Form1.Designer.cs | 45 ---- ProjectCruiser/ProjectCruiser/Form1.cs | 10 - .../ProjectCruiser/FormCruiser.Designer.cs | 130 +++++++++++ ProjectCruiser/ProjectCruiser/FormCruiser.cs | 34 +++ .../{Form1.resx => FormCruiser.resx} | 0 ProjectCruiser/ProjectCruiser/Program.cs | 2 +- .../ProjectCruiser/ProjectCruiser.csproj | 15 ++ .../Properties/Resources.Designer.cs | 103 +++++++++ .../ProjectCruiser/Properties/Resources.resx | 133 +++++++++++ .../Properties/Resources/arrowDown.png | Bin 0 -> 6633 bytes .../Properties/Resources/arrowLeft.png | Bin 0 -> 5878 bytes .../Properties/Resources/arrowRight.png | Bin 0 -> 5832 bytes .../Properties/Resources/arrowUp.png | Bin 0 -> 5884 bytes 16 files changed, 725 insertions(+), 56 deletions(-) create mode 100644 ProjectCruiser/ProjectCruiser/DirectionType.cs create mode 100644 ProjectCruiser/ProjectCruiser/DrawingCruiser.cs create mode 100644 ProjectCruiser/ProjectCruiser/EntityCruiser.cs delete mode 100644 ProjectCruiser/ProjectCruiser/Form1.Designer.cs delete mode 100644 ProjectCruiser/ProjectCruiser/Form1.cs create mode 100644 ProjectCruiser/ProjectCruiser/FormCruiser.Designer.cs create mode 100644 ProjectCruiser/ProjectCruiser/FormCruiser.cs rename ProjectCruiser/ProjectCruiser/{Form1.resx => FormCruiser.resx} (100%) create mode 100644 ProjectCruiser/ProjectCruiser/Properties/Resources.Designer.cs create mode 100644 ProjectCruiser/ProjectCruiser/Properties/Resources.resx create mode 100644 ProjectCruiser/ProjectCruiser/Properties/Resources/arrowDown.png create mode 100644 ProjectCruiser/ProjectCruiser/Properties/Resources/arrowLeft.png create mode 100644 ProjectCruiser/ProjectCruiser/Properties/Resources/arrowRight.png create mode 100644 ProjectCruiser/ProjectCruiser/Properties/Resources/arrowUp.png diff --git a/ProjectCruiser/ProjectCruiser/DirectionType.cs b/ProjectCruiser/ProjectCruiser/DirectionType.cs new file mode 100644 index 0000000..4cdd1e9 --- /dev/null +++ b/ProjectCruiser/ProjectCruiser/DirectionType.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectCruiser; + +/// +/// Направление перемещения +/// + public enum DirectionType + { + /// + /// Вверх + /// + Up = 1, + /// + /// Вниз + /// + Down = 2, + /// + /// Влева + /// + Left = 3, + /// + /// Вправо + /// + Right = 4 + } + diff --git a/ProjectCruiser/ProjectCruiser/DrawingCruiser.cs b/ProjectCruiser/ProjectCruiser/DrawingCruiser.cs new file mode 100644 index 0000000..93473bd --- /dev/null +++ b/ProjectCruiser/ProjectCruiser/DrawingCruiser.cs @@ -0,0 +1,209 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectCruiser; + +public class DrawingCruiser +{ + /// + /// Класс-сущность + /// + public EntityCruiser? EntityCruiser { get; private set; } + /// + /// Ширина окна + /// + private int? _pictureWidth; + /// + /// Высота окна + /// + private int? _pictureHeight; + /// + /// Левая координата прорисовки крейсера + /// + private int? _startPosX; + /// + /// Верхняя координата прорисовки крейсера + /// + private int? _startPosY; + + /// + /// Ширина прорисовки крейсера + /// + private readonly int _drawningCruiserWidth = 110; + /// + /// Высота прорисовки крейсера + /// + private readonly int _drawingCruiserHeight = 60; + + /// + /// Инициализация полей объекта класса крейсера + /// + /// Скорость + /// Вес крейсера + /// Скорость + /// Дополнительный цвет + /// Признак наличия обвеса + /// Признак наличия брони + /// Признак наличия оружия + public void Init(int speed, double weigth, Color bodyColor, Color additionalColor, bool bodyKit, bool armor, bool weapon) + { + EntityCruiser = new EntityCruiser(); + EntityCruiser.Init(speed, weigth, bodyColor, additionalColor, bodyKit, armor, weapon); + _pictureWidth = null; + _pictureHeight = null; + _startPosX = null; + _startPosY = null; + } + + public bool SetPictireSize(int width, int height) + { + _pictureWidth = width; + _pictureHeight = height; + return true; + } + + public void SetPosition(int x, int y) + { + if (!_pictureHeight.HasValue || !_pictureWidth.HasValue) + { + return; + } + + _startPosX = x; + _startPosY = y; + } + + public bool MoveTransport(DirectionType direction) + { + if (EntityCruiser == null || _startPosX.HasValue || _startPosY.HasValue) + { + return false; + } + + switch (direction) + { + case DirectionType.Left: + if (_startPosX.Value - EntityCruiser.Step > 0) + { + _startPosX -= (int)EntityCruiser.Step; + } + return true; + + case DirectionType.Up: + if (_startPosY.Value - EntityCruiser.Step > 0) + { + _startPosY -= (int)EntityCruiser.Step; + } + return true; + case DirectionType.Right: + return true; + case DirectionType.Down: + return true; + default: + return false; + } + } + + public void DrawTransport(Graphics g) + { + if (EntityCruiser == null || !_startPosX.HasValue || _startPosY.HasValue) + { + return; + } + + Pen pen = new(Color.Black); + + Brush additionalBrush = new SolidBrush(EntityCruiser.AdditionalColor); + + if (EntityCruiser.BodyKit) + { + g.DrawEllipse(pen, _startPosX.Value + 90, _startPosY.Value, 20, 20); + g.DrawEllipse(pen, _startPosX.Value + 90, _startPosY.Value + 40, 20, 20); + g.DrawRectangle(pen, _startPosX.Value + 90, _startPosY.Value + 10, 20, 40); + g.DrawRectangle(pen, _startPosX.Value + 90, _startPosY.Value, 15, 15); + g.DrawRectangle(pen, _startPosX.Value + 90, _startPosY.Value + 45, 15, 15); + + g.FillEllipse(additionalBrush, _startPosX.Value + 90, _startPosY.Value, 20, 20); + g.FillEllipse(additionalBrush, _startPosX.Value + 90, _startPosY.Value + 40, 20, 20); + g.FillRectangle(additionalBrush, _startPosX.Value + 90, _startPosY.Value + 10, 20, 40); + g.FillRectangle(additionalBrush, _startPosX.Value + 90, _startPosY.Value + 1, 15, 15); + g.FillRectangle(additionalBrush, _startPosX.Value + 90, _startPosY.Value + 45, 15, 15); + + + g.DrawEllipse(pen, _startPosX.Value, _startPosY.Value, 20, 20); + g.DrawEllipse(pen, _startPosX.Value, _startPosY.Value + 40, 20, 20); + g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value + 10, 20, 40); + g.DrawRectangle(pen, _startPosX.Value + 5, _startPosY.Value, 14, 15); + g.DrawRectangle(pen, _startPosX.Value + 5, _startPosY.Value + 45, 14, 15); + + g.FillEllipse(additionalBrush, _startPosX.Value, _startPosY.Value, 20, 20); + g.FillEllipse(additionalBrush, _startPosX.Value, _startPosY.Value + 40, 20, 20); + g.FillRectangle(additionalBrush, _startPosX.Value + 1, _startPosY.Value + 10, 25, 40); + g.FillRectangle(additionalBrush, _startPosX.Value + 5, _startPosY.Value + 1, 15, 15); + g.FillRectangle(additionalBrush, _startPosX.Value + 5, _startPosY.Value + 45, 15, 15); + + g.DrawRectangle(pen, _startPosX.Value + 35, _startPosY.Value, 39, 15); + g.DrawRectangle(pen, _startPosX.Value + 35, _startPosY.Value + 45, 39, 15); + + g.FillRectangle(additionalBrush, _startPosX.Value + 35, _startPosY.Value + 1, 40, 15); + g.FillRectangle(additionalBrush, _startPosX.Value + 35, _startPosY.Value + 45, 40, 15); + + } + + g.DrawEllipse(pen, _startPosX.Value + 10, _startPosY.Value + 5, 20, 20); + g.DrawEllipse(pen, _startPosX.Value + 10, _startPosY.Value + 35, 20, 20); + g.DrawEllipse(pen, _startPosX.Value + 80, _startPosY.Value + 5, 20, 20); + g.DrawEllipse(pen, _startPosX.Value + 80, _startPosY.Value + 35, 20, 20); + g.DrawRectangle(pen, _startPosX.Value + 9, _startPosY.Value + 15, 10, 30); + g.DrawRectangle(pen, _startPosX.Value + 90, _startPosY.Value + 15, 10, 30); + g.DrawRectangle(pen, _startPosX.Value + 20, _startPosY.Value + 4, 70, 52); + + // задние фары + Brush brRed = new SolidBrush(Color.Red); + g.FillEllipse(brRed, _startPosX.Value + 10, _startPosY.Value + 5, 20, 20); + g.FillEllipse(brRed, _startPosX.Value + 10, _startPosY.Value + 35, 20, 20); + + //передние фары + Brush brYellow = new SolidBrush(Color.Yellow); + g.FillEllipse(brYellow, _startPosX.Value + 80, _startPosY.Value + 5, 20, 20); + g.FillEllipse(brYellow, _startPosX.Value + 80, _startPosY.Value + 35, 20, 20); + + //кузов + Brush br = new SolidBrush(EntityCruiser.BodyColor); + g.FillRectangle(br, _startPosX.Value + 10, _startPosY.Value + 15, 10, 30); + g.FillRectangle(br, _startPosX.Value + 90, _startPosY.Value + 15, 10, 30); + g.FillRectangle(br, _startPosX.Value + 20, _startPosY.Value + 5, 70, 50); + + //стекла + Brush brBlue = new SolidBrush(Color.LightBlue); + g.FillRectangle(brBlue, _startPosX.Value + 70, _startPosY.Value + 10, 5, 40); + g.FillRectangle(brBlue, _startPosX.Value + 30, _startPosY.Value + 10, 5, 40); + g.FillRectangle(brBlue, _startPosX.Value + 35, _startPosY.Value + 8, 35, 2); + g.FillRectangle(brBlue, _startPosX.Value + 35, _startPosY.Value + 51, 35, 2); + + //выделяем рамкой крышу + g.DrawRectangle(pen, _startPosX.Value + 35, _startPosY.Value + 10, 35, 40); + g.DrawRectangle(pen, _startPosX.Value + 75, _startPosY.Value + 15, 25, 30); + g.DrawRectangle(pen, _startPosX.Value + 10, _startPosY.Value + 15, 15, 30); + + // спортивная линия + if (EntityCruiser.Armor) + { + g.FillRectangle(additionalBrush, _startPosX.Value + 75, _startPosY.Value + 23, 25, 15); + g.FillRectangle(additionalBrush, _startPosX.Value + 35, _startPosY.Value + 23, 35, 15); + g.FillRectangle(additionalBrush, _startPosX.Value + 10, _startPosY.Value + 23, 20, 15); + + } + + // крыло + if (EntityCruiser.Weapon) + { + g.FillRectangle(additionalBrush, _startPosX.Value, _startPosY.Value + 5, 10, 50); + g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value + 5, 10, 50); + } + + } +} diff --git a/ProjectCruiser/ProjectCruiser/EntityCruiser.cs b/ProjectCruiser/ProjectCruiser/EntityCruiser.cs new file mode 100644 index 0000000..8fdcd5d --- /dev/null +++ b/ProjectCruiser/ProjectCruiser/EntityCruiser.cs @@ -0,0 +1,69 @@ +namespace ProjectCruiser +{ + /// + /// Класс-сущность "Крейсер" Вариант 18 + /// + public class EntityCruiser + { + /// + /// Скорость + /// + public int Speed { get; private set; } + + /// + /// Вес + /// + public double Weigth { get; private set; } + + /// + /// Основной цвет + /// + public Color BodyColor { get; private set; } + + /// + /// Дополнительный цвет (для опциональных элементов) + /// + public Color AdditionalColor { get; private set; } + + /// + /// Признак (опция) наличие обвеса + /// + public bool BodyKit { get; private set; } + + /// + /// Признак (опция) брони + /// + public bool Armor { get; private set; } + + /// + /// Признак (опция) оружия + /// + public bool Weapon { get; private set; } + + /// + /// Шаг перемещения крейсера + /// + public double Step => Speed * 100 / Weigth; + + /// + /// Инициализация полей объекта класса крейсера + /// + /// Скорость + /// Вес крейсера + /// Скорость + /// Дополнительный цвет + /// Признак наличия обвеса + /// Признак наличия брони + /// Признак наличия оружия + public void Init(int speed, double weigth, Color bodyColor, Color additionalColor, bool bodyKit, bool armor, bool weapon) + { + Speed = speed; + Weigth = weigth; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + BodyKit = bodyKit; + Armor = armor; + Weapon = weapon; + } + } +} diff --git a/ProjectCruiser/ProjectCruiser/Form1.Designer.cs b/ProjectCruiser/ProjectCruiser/Form1.Designer.cs deleted file mode 100644 index a813ab1..0000000 --- a/ProjectCruiser/ProjectCruiser/Form1.Designer.cs +++ /dev/null @@ -1,45 +0,0 @@ -namespace ProjectCruiser -{ - partial class Form1 - { - /// - /// 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() - { - SuspendLayout(); - // - // Form1 - // - AutoScaleDimensions = new SizeF(8F, 20F); - AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(800, 450); - Name = "Form1"; - Text = "Form1"; - ResumeLayout(false); - } - - #endregion - } -} diff --git a/ProjectCruiser/ProjectCruiser/Form1.cs b/ProjectCruiser/ProjectCruiser/Form1.cs deleted file mode 100644 index 99d4497..0000000 --- a/ProjectCruiser/ProjectCruiser/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace ProjectCruiser -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} diff --git a/ProjectCruiser/ProjectCruiser/FormCruiser.Designer.cs b/ProjectCruiser/ProjectCruiser/FormCruiser.Designer.cs new file mode 100644 index 0000000..ebe2aab --- /dev/null +++ b/ProjectCruiser/ProjectCruiser/FormCruiser.Designer.cs @@ -0,0 +1,130 @@ +namespace ProjectCruiser +{ + partial class FormCruiser + { + /// + /// 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() + { + pictureBoxCruiser = new PictureBox(); + buttonCreate = new Button(); + buttonDown = new Button(); + buttonUp = new Button(); + buttonRight = new Button(); + buttonLeft = new Button(); + ((System.ComponentModel.ISupportInitialize)pictureBoxCruiser).BeginInit(); + SuspendLayout(); + // + // pictureBoxCruiser + // + pictureBoxCruiser.Dock = DockStyle.Fill; + pictureBoxCruiser.Location = new Point(0, 0); + pictureBoxCruiser.Name = "pictureBoxCruiser"; + pictureBoxCruiser.Size = new Size(800, 450); + pictureBoxCruiser.TabIndex = 0; + pictureBoxCruiser.TabStop = false; + // + // buttonCreate + // + buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreate.Location = new Point(12, 409); + buttonCreate.Name = "buttonCreate"; + buttonCreate.Size = new Size(94, 29); + buttonCreate.TabIndex = 1; + buttonCreate.Text = "Создать"; + buttonCreate.UseVisualStyleBackColor = true; + buttonCreate.Click += ButtonCreate_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = Properties.Resources.arrowDown; + buttonDown.BackgroundImageLayout = ImageLayout.Stretch; + buttonDown.Location = new Point(682, 392); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(35, 35); + buttonDown.TabIndex = 2; + buttonDown.UseVisualStyleBackColor = true; + // + // buttonUp + // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonUp.BackgroundImage = Properties.Resources.arrowUp; + buttonUp.BackgroundImageLayout = ImageLayout.Stretch; + buttonUp.Location = new Point(682, 351); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(35, 35); + buttonUp.TabIndex = 3; + buttonUp.UseVisualStyleBackColor = true; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = Properties.Resources.arrowRight; + buttonRight.BackgroundImageLayout = ImageLayout.Stretch; + buttonRight.Location = new Point(723, 392); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(35, 35); + buttonRight.TabIndex = 4; + buttonRight.UseVisualStyleBackColor = true; + // + // buttonLeft + // + buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonLeft.BackgroundImage = Properties.Resources.arrowLeft; + buttonLeft.BackgroundImageLayout = ImageLayout.Stretch; + buttonLeft.Location = new Point(641, 392); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(35, 35); + buttonLeft.TabIndex = 5; + buttonLeft.UseVisualStyleBackColor = true; + // + // FormCruiser + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 450); + Controls.Add(buttonLeft); + Controls.Add(buttonRight); + Controls.Add(buttonUp); + Controls.Add(buttonDown); + Controls.Add(buttonCreate); + Controls.Add(pictureBoxCruiser); + Name = "FormCruiser"; + Text = "Крейсер"; + ((System.ComponentModel.ISupportInitialize)pictureBoxCruiser).EndInit(); + ResumeLayout(false); + } + + #endregion + + private PictureBox pictureBoxCruiser; + private Button buttonCreate; + private Button buttonDown; + private Button buttonUp; + private Button buttonRight; + private Button buttonLeft; + } +} \ No newline at end of file diff --git a/ProjectCruiser/ProjectCruiser/FormCruiser.cs b/ProjectCruiser/ProjectCruiser/FormCruiser.cs new file mode 100644 index 0000000..9a2a972 --- /dev/null +++ b/ProjectCruiser/ProjectCruiser/FormCruiser.cs @@ -0,0 +1,34 @@ +namespace ProjectCruiser +{ + public partial class FormCruiser : Form + { + + private DrawingCruiser? _drawingCruiser; + public FormCruiser() + { + InitializeComponent(); + } + + private void ButtonCreate_Click(object sender, EventArgs e) + { + Random random = new(); + _drawingCruiser = new DrawingCruiser(); + _drawingCruiser.Init( + random.Next(100, 300), + random.Next(1000, 3000), + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), 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))); + + _drawingCruiser.SetPictireSize(pictureBoxCruiser.Width, pictureBoxCruiser.Height); + _drawingCruiser.SetPosition(random.Next(10, 100), random.Next(10, 100)); + + Bitmap bmp = new(pictureBoxCruiser.Width, pictureBoxCruiser.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawingCruiser.DrawTransport(gr); + pictureBoxCruiser.Image = bmp; + } + } +} diff --git a/ProjectCruiser/ProjectCruiser/Form1.resx b/ProjectCruiser/ProjectCruiser/FormCruiser.resx similarity index 100% rename from ProjectCruiser/ProjectCruiser/Form1.resx rename to ProjectCruiser/ProjectCruiser/FormCruiser.resx diff --git a/ProjectCruiser/ProjectCruiser/Program.cs b/ProjectCruiser/ProjectCruiser/Program.cs index 2ddf3fc..4e00cd8 100644 --- a/ProjectCruiser/ProjectCruiser/Program.cs +++ b/ProjectCruiser/ProjectCruiser/Program.cs @@ -11,7 +11,7 @@ namespace ProjectCruiser // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); - Application.Run(new Form1()); + Application.Run(new FormCruiser()); } } } \ No newline at end of file diff --git a/ProjectCruiser/ProjectCruiser/ProjectCruiser.csproj b/ProjectCruiser/ProjectCruiser/ProjectCruiser.csproj index 663fdb8..af03d74 100644 --- a/ProjectCruiser/ProjectCruiser/ProjectCruiser.csproj +++ b/ProjectCruiser/ProjectCruiser/ProjectCruiser.csproj @@ -8,4 +8,19 @@ enable + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file diff --git a/ProjectCruiser/ProjectCruiser/Properties/Resources.Designer.cs b/ProjectCruiser/ProjectCruiser/Properties/Resources.Designer.cs new file mode 100644 index 0000000..724a88c --- /dev/null +++ b/ProjectCruiser/ProjectCruiser/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace ProjectCruiser.Properties { + using System; + + + /// + /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д. + /// + // Этот класс создан автоматически классом StronglyTypedResourceBuilder + // с помощью такого средства, как ResGen или Visual Studio. + // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen + // с параметром /str или перестройте свой проект VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ProjectCruiser.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Перезаписывает свойство CurrentUICulture текущего потока для всех + /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrowDown { + get { + object obj = ResourceManager.GetObject("arrowDown", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrowLeft { + get { + object obj = ResourceManager.GetObject("arrowLeft", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrowRight { + get { + object obj = ResourceManager.GetObject("arrowRight", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrowUp { + get { + object obj = ResourceManager.GetObject("arrowUp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/ProjectCruiser/ProjectCruiser/Properties/Resources.resx b/ProjectCruiser/ProjectCruiser/Properties/Resources.resx new file mode 100644 index 0000000..b4f1385 --- /dev/null +++ b/ProjectCruiser/ProjectCruiser/Properties/Resources.resx @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + Resources\arrowDown.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\arrowLeft.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\arrowRight.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\arrowUp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/ProjectCruiser/ProjectCruiser/Properties/Resources/arrowDown.png b/ProjectCruiser/ProjectCruiser/Properties/Resources/arrowDown.png new file mode 100644 index 0000000000000000000000000000000000000000..fec397238906a866961464f4b0936a9387b4f4ce GIT binary patch literal 6633 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 literal 0 HcmV?d00001 diff --git a/ProjectCruiser/ProjectCruiser/Properties/Resources/arrowLeft.png b/ProjectCruiser/ProjectCruiser/Properties/Resources/arrowLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..0a1d82c90b19c3f28ce9aced70c026d38f1520cb GIT binary patch literal 5878 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 A6aWAK literal 0 HcmV?d00001 diff --git a/ProjectCruiser/ProjectCruiser/Properties/Resources/arrowRight.png b/ProjectCruiser/ProjectCruiser/Properties/Resources/arrowRight.png new file mode 100644 index 0000000000000000000000000000000000000000..eecf7b04f24e1c6ae9c2000b05bb6945407bcd10 GIT binary patch literal 5832 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 literal 0 HcmV?d00001 diff --git a/ProjectCruiser/ProjectCruiser/Properties/Resources/arrowUp.png b/ProjectCruiser/ProjectCruiser/Properties/Resources/arrowUp.png new file mode 100644 index 0000000000000000000000000000000000000000..e2a4a9310e52bb624e595d17778a04dfc91b5b4c GIT binary patch literal 5884 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 literal 0 HcmV?d00001 -- 2.25.1 From 32dc88b8a9431635a07da847c03bc77d6d096bc8 Mon Sep 17 00:00:00 2001 From: Almaz <79022113685@mail.ru> Date: Tue, 9 Apr 2024 10:09:18 +0400 Subject: [PATCH 2/2] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=20=E2=84=961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectCruiser/DrawingCruiser.cs | 83 ++++--------------- .../ProjectCruiser/FormCruiser.Designer.cs | 28 ++++--- ProjectCruiser/ProjectCruiser/FormCruiser.cs | 49 +++++++++-- 3 files changed, 74 insertions(+), 86 deletions(-) diff --git a/ProjectCruiser/ProjectCruiser/DrawingCruiser.cs b/ProjectCruiser/ProjectCruiser/DrawingCruiser.cs index 93473bd..a1fb426 100644 --- a/ProjectCruiser/ProjectCruiser/DrawingCruiser.cs +++ b/ProjectCruiser/ProjectCruiser/DrawingCruiser.cs @@ -78,7 +78,7 @@ public class DrawingCruiser public bool MoveTransport(DirectionType direction) { - if (EntityCruiser == null || _startPosX.HasValue || _startPosY.HasValue) + if (EntityCruiser == null || !_startPosX.HasValue || !_startPosY.HasValue) { return false; } @@ -99,8 +99,16 @@ public class DrawingCruiser } return true; case DirectionType.Right: + if (_startPosX.Value - EntityCruiser.Step > 0) + { + _startPosX += (int)EntityCruiser.Step; + } return true; case DirectionType.Down: + if (_startPosY.Value - EntityCruiser.Step > 0) + { + _startPosY += (int)EntityCruiser.Step; + } return true; default: return false; @@ -109,7 +117,7 @@ public class DrawingCruiser public void DrawTransport(Graphics g) { - if (EntityCruiser == null || !_startPosX.HasValue || _startPosY.HasValue) + if (EntityCruiser == null || !_startPosX.HasValue || !_startPosY.HasValue) { return; } @@ -118,41 +126,7 @@ public class DrawingCruiser Brush additionalBrush = new SolidBrush(EntityCruiser.AdditionalColor); - if (EntityCruiser.BodyKit) - { - g.DrawEllipse(pen, _startPosX.Value + 90, _startPosY.Value, 20, 20); - g.DrawEllipse(pen, _startPosX.Value + 90, _startPosY.Value + 40, 20, 20); - g.DrawRectangle(pen, _startPosX.Value + 90, _startPosY.Value + 10, 20, 40); - g.DrawRectangle(pen, _startPosX.Value + 90, _startPosY.Value, 15, 15); - g.DrawRectangle(pen, _startPosX.Value + 90, _startPosY.Value + 45, 15, 15); - - g.FillEllipse(additionalBrush, _startPosX.Value + 90, _startPosY.Value, 20, 20); - g.FillEllipse(additionalBrush, _startPosX.Value + 90, _startPosY.Value + 40, 20, 20); - g.FillRectangle(additionalBrush, _startPosX.Value + 90, _startPosY.Value + 10, 20, 40); - g.FillRectangle(additionalBrush, _startPosX.Value + 90, _startPosY.Value + 1, 15, 15); - g.FillRectangle(additionalBrush, _startPosX.Value + 90, _startPosY.Value + 45, 15, 15); - - - g.DrawEllipse(pen, _startPosX.Value, _startPosY.Value, 20, 20); - g.DrawEllipse(pen, _startPosX.Value, _startPosY.Value + 40, 20, 20); - g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value + 10, 20, 40); - g.DrawRectangle(pen, _startPosX.Value + 5, _startPosY.Value, 14, 15); - g.DrawRectangle(pen, _startPosX.Value + 5, _startPosY.Value + 45, 14, 15); - - g.FillEllipse(additionalBrush, _startPosX.Value, _startPosY.Value, 20, 20); - g.FillEllipse(additionalBrush, _startPosX.Value, _startPosY.Value + 40, 20, 20); - g.FillRectangle(additionalBrush, _startPosX.Value + 1, _startPosY.Value + 10, 25, 40); - g.FillRectangle(additionalBrush, _startPosX.Value + 5, _startPosY.Value + 1, 15, 15); - g.FillRectangle(additionalBrush, _startPosX.Value + 5, _startPosY.Value + 45, 15, 15); - - g.DrawRectangle(pen, _startPosX.Value + 35, _startPosY.Value, 39, 15); - g.DrawRectangle(pen, _startPosX.Value + 35, _startPosY.Value + 45, 39, 15); - - g.FillRectangle(additionalBrush, _startPosX.Value + 35, _startPosY.Value + 1, 40, 15); - g.FillRectangle(additionalBrush, _startPosX.Value + 35, _startPosY.Value + 45, 40, 15); - - } - + //Границы крейсера g.DrawEllipse(pen, _startPosX.Value + 10, _startPosY.Value + 5, 20, 20); g.DrawEllipse(pen, _startPosX.Value + 10, _startPosY.Value + 35, 20, 20); g.DrawEllipse(pen, _startPosX.Value + 80, _startPosY.Value + 5, 20, 20); @@ -161,36 +135,14 @@ public class DrawingCruiser g.DrawRectangle(pen, _startPosX.Value + 90, _startPosY.Value + 15, 10, 30); g.DrawRectangle(pen, _startPosX.Value + 20, _startPosY.Value + 4, 70, 52); - // задние фары - Brush brRed = new SolidBrush(Color.Red); - g.FillEllipse(brRed, _startPosX.Value + 10, _startPosY.Value + 5, 20, 20); - g.FillEllipse(brRed, _startPosX.Value + 10, _startPosY.Value + 35, 20, 20); - - //передние фары - Brush brYellow = new SolidBrush(Color.Yellow); - g.FillEllipse(brYellow, _startPosX.Value + 80, _startPosY.Value + 5, 20, 20); - g.FillEllipse(brYellow, _startPosX.Value + 80, _startPosY.Value + 35, 20, 20); - - //кузов + //кузов крейсера Brush br = new SolidBrush(EntityCruiser.BodyColor); g.FillRectangle(br, _startPosX.Value + 10, _startPosY.Value + 15, 10, 30); g.FillRectangle(br, _startPosX.Value + 90, _startPosY.Value + 15, 10, 30); g.FillRectangle(br, _startPosX.Value + 20, _startPosY.Value + 5, 70, 50); - //стекла - Brush brBlue = new SolidBrush(Color.LightBlue); - g.FillRectangle(brBlue, _startPosX.Value + 70, _startPosY.Value + 10, 5, 40); - g.FillRectangle(brBlue, _startPosX.Value + 30, _startPosY.Value + 10, 5, 40); - g.FillRectangle(brBlue, _startPosX.Value + 35, _startPosY.Value + 8, 35, 2); - g.FillRectangle(brBlue, _startPosX.Value + 35, _startPosY.Value + 51, 35, 2); - - //выделяем рамкой крышу - g.DrawRectangle(pen, _startPosX.Value + 35, _startPosY.Value + 10, 35, 40); - g.DrawRectangle(pen, _startPosX.Value + 75, _startPosY.Value + 15, 25, 30); - g.DrawRectangle(pen, _startPosX.Value + 10, _startPosY.Value + 15, 15, 30); - - // спортивная линия - if (EntityCruiser.Armor) + // оружие крейсера + if (EntityCruiser.Weapon) { g.FillRectangle(additionalBrush, _startPosX.Value + 75, _startPosY.Value + 23, 25, 15); g.FillRectangle(additionalBrush, _startPosX.Value + 35, _startPosY.Value + 23, 35, 15); @@ -198,12 +150,5 @@ public class DrawingCruiser } - // крыло - if (EntityCruiser.Weapon) - { - g.FillRectangle(additionalBrush, _startPosX.Value, _startPosY.Value + 5, 10, 50); - g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value + 5, 10, 50); - } - } } diff --git a/ProjectCruiser/ProjectCruiser/FormCruiser.Designer.cs b/ProjectCruiser/ProjectCruiser/FormCruiser.Designer.cs index ebe2aab..69e341a 100644 --- a/ProjectCruiser/ProjectCruiser/FormCruiser.Designer.cs +++ b/ProjectCruiser/ProjectCruiser/FormCruiser.Designer.cs @@ -29,7 +29,7 @@ private void InitializeComponent() { pictureBoxCruiser = new PictureBox(); - buttonCreate = new Button(); + buttonCreateCruiser = new Button(); buttonDown = new Button(); buttonUp = new Button(); buttonRight = new Button(); @@ -46,16 +46,16 @@ pictureBoxCruiser.TabIndex = 0; pictureBoxCruiser.TabStop = false; // - // buttonCreate + // buttonCreateCruiser // - buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; - buttonCreate.Location = new Point(12, 409); - buttonCreate.Name = "buttonCreate"; - buttonCreate.Size = new Size(94, 29); - buttonCreate.TabIndex = 1; - buttonCreate.Text = "Создать"; - buttonCreate.UseVisualStyleBackColor = true; - buttonCreate.Click += ButtonCreate_Click; + buttonCreateCruiser.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreateCruiser.Location = new Point(12, 409); + buttonCreateCruiser.Name = "buttonCreateCruiser"; + buttonCreateCruiser.Size = new Size(94, 29); + buttonCreateCruiser.TabIndex = 1; + buttonCreateCruiser.Text = "Создать"; + buttonCreateCruiser.UseVisualStyleBackColor = true; + buttonCreateCruiser.Click += ButtonCreateCruiser_Click; // // buttonDown // @@ -67,6 +67,7 @@ buttonDown.Size = new Size(35, 35); buttonDown.TabIndex = 2; buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += ButtonMove_Click; // // buttonUp // @@ -78,6 +79,7 @@ buttonUp.Size = new Size(35, 35); buttonUp.TabIndex = 3; buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += ButtonMove_Click; // // buttonRight // @@ -89,6 +91,7 @@ buttonRight.Size = new Size(35, 35); buttonRight.TabIndex = 4; buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += ButtonMove_Click; // // buttonLeft // @@ -100,6 +103,7 @@ buttonLeft.Size = new Size(35, 35); buttonLeft.TabIndex = 5; buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += ButtonMove_Click; // // FormCruiser // @@ -110,7 +114,7 @@ Controls.Add(buttonRight); Controls.Add(buttonUp); Controls.Add(buttonDown); - Controls.Add(buttonCreate); + Controls.Add(buttonCreateCruiser); Controls.Add(pictureBoxCruiser); Name = "FormCruiser"; Text = "Крейсер"; @@ -121,7 +125,7 @@ #endregion private PictureBox pictureBoxCruiser; - private Button buttonCreate; + private Button buttonCreateCruiser; private Button buttonDown; private Button buttonUp; private Button buttonRight; diff --git a/ProjectCruiser/ProjectCruiser/FormCruiser.cs b/ProjectCruiser/ProjectCruiser/FormCruiser.cs index 9a2a972..b12c168 100644 --- a/ProjectCruiser/ProjectCruiser/FormCruiser.cs +++ b/ProjectCruiser/ProjectCruiser/FormCruiser.cs @@ -9,7 +9,20 @@ InitializeComponent(); } - private void ButtonCreate_Click(object sender, EventArgs e) + private void Draw() + { + if (_drawingCruiser == null) + { + return; + } + + Bitmap bmp = new(pictureBoxCruiser.Width, pictureBoxCruiser.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawingCruiser.DrawTransport(gr); + pictureBoxCruiser.Image = bmp; + } + + private void ButtonCreateCruiser_Click(object sender, EventArgs e) { Random random = new(); _drawingCruiser = new DrawingCruiser(); @@ -25,10 +38,36 @@ _drawingCruiser.SetPictireSize(pictureBoxCruiser.Width, pictureBoxCruiser.Height); _drawingCruiser.SetPosition(random.Next(10, 100), random.Next(10, 100)); - Bitmap bmp = new(pictureBoxCruiser.Width, pictureBoxCruiser.Height); - Graphics gr = Graphics.FromImage(bmp); - _drawingCruiser.DrawTransport(gr); - pictureBoxCruiser.Image = bmp; + Draw(); + } + + private void ButtonMove_Click(object sender, EventArgs e) + { + if(_drawingCruiser == null) + { + return; + } + + string name = ((Button)sender)?.Name ?? string.Empty; + bool result = false; + switch(name) { + case "buttonUp": + result = _drawingCruiser.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + result = _drawingCruiser.MoveTransport(DirectionType.Down); + break; + case "buttonLeft": + result = _drawingCruiser.MoveTransport(DirectionType.Left); + break; + case "buttonRight": + result = _drawingCruiser.MoveTransport(DirectionType.Right); + break; + } + + if (result) { + Draw(); + } } } } -- 2.25.1