From 86d101a45f2491eb4deb1e8695468e0b944007db Mon Sep 17 00:00:00 2001 From: Ivan Rotov Date: Mon, 17 Feb 2025 11:33:41 +0400 Subject: [PATCH 1/3] =?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=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectStormTrooper/Class1.cs | 45 ++++ .../ProjectStormTrooper/DirectionType.cs | 14 ++ .../DrawingStormTrooper.cs | 215 ++++++++++++++++++ .../ProjectStormTrooper/Form1.Designer.cs | 46 ---- .../ProjectStormTrooper/Form1.cs | 15 -- .../ProjectStormTrooper/Program.cs | 2 +- .../ProjectStormTrooper.csproj | 15 ++ .../Properties/Resources.Designer.cs | 103 +++++++++ .../Properties/Resources.resx | 133 +++++++++++ .../StormTrooperForm.Designer.cs | 139 +++++++++++ .../ProjectStormTrooper/StormTrooperForm.cs | 97 ++++++++ .../{Form1.resx => StormTrooperForm.resx} | 0 .../ProjectStormTrooper/arrows/arrow_down.png | Bin 0 -> 24475 bytes .../ProjectStormTrooper/arrows/arrow_left.png | Bin 0 -> 22422 bytes .../arrows/arrow_right.png | Bin 0 -> 20136 bytes .../ProjectStormTrooper/arrows/arrow_up.png | Bin 0 -> 24266 bytes 16 files changed, 762 insertions(+), 62 deletions(-) create mode 100644 ProjectStormTrooper/ProjectStormTrooper/Class1.cs create mode 100644 ProjectStormTrooper/ProjectStormTrooper/DirectionType.cs create mode 100644 ProjectStormTrooper/ProjectStormTrooper/DrawingStormTrooper.cs delete mode 100644 ProjectStormTrooper/ProjectStormTrooper/Form1.Designer.cs delete mode 100644 ProjectStormTrooper/ProjectStormTrooper/Form1.cs create mode 100644 ProjectStormTrooper/ProjectStormTrooper/Properties/Resources.Designer.cs create mode 100644 ProjectStormTrooper/ProjectStormTrooper/Properties/Resources.resx create mode 100644 ProjectStormTrooper/ProjectStormTrooper/StormTrooperForm.Designer.cs create mode 100644 ProjectStormTrooper/ProjectStormTrooper/StormTrooperForm.cs rename ProjectStormTrooper/ProjectStormTrooper/{Form1.resx => StormTrooperForm.resx} (100%) create mode 100644 ProjectStormTrooper/ProjectStormTrooper/arrows/arrow_down.png create mode 100644 ProjectStormTrooper/ProjectStormTrooper/arrows/arrow_left.png create mode 100644 ProjectStormTrooper/ProjectStormTrooper/arrows/arrow_right.png create mode 100644 ProjectStormTrooper/ProjectStormTrooper/arrows/arrow_up.png diff --git a/ProjectStormTrooper/ProjectStormTrooper/Class1.cs b/ProjectStormTrooper/ProjectStormTrooper/Class1.cs new file mode 100644 index 0000000..210505c --- /dev/null +++ b/ProjectStormTrooper/ProjectStormTrooper/Class1.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectStormTrooper; + +public class EntityStormTrooper +{ + //speed + public int Speed { get; private set; } + + //weight + public double Weight { get; private set; } + + //maincolor + + public Color BodyColor { get; private set; } + + //additionalcolor + + public Color AdditionalColor { get; private set; } + + public bool BodyRockets { get; private set; } + + //movement + + public double Step => Speed * 500 / Weight; + + public bool Wing { get; private set; } + public void Init(bool wing, int speed, double weight, Color bodyColor, Color additionalColor, bool bodyRockets) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + Wing = wing; + BodyRockets = bodyRockets; + + } + + +} + diff --git a/ProjectStormTrooper/ProjectStormTrooper/DirectionType.cs b/ProjectStormTrooper/ProjectStormTrooper/DirectionType.cs new file mode 100644 index 0000000..e0d1625 --- /dev/null +++ b/ProjectStormTrooper/ProjectStormTrooper/DirectionType.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectStormTrooper; +public enum DirectionType +{ + Up = 1, + Down = 2, + Left = 3, + Right = 4, +} diff --git a/ProjectStormTrooper/ProjectStormTrooper/DrawingStormTrooper.cs b/ProjectStormTrooper/ProjectStormTrooper/DrawingStormTrooper.cs new file mode 100644 index 0000000..bbc0671 --- /dev/null +++ b/ProjectStormTrooper/ProjectStormTrooper/DrawingStormTrooper.cs @@ -0,0 +1,215 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectStormTrooper; + +public class DrawingStormTrooper +{ + public EntityStormTrooper? EntityStormTrooper { get; private set; } + + //windowswidth + + private int? _pictureWidth; + + private int? _pictureHeight; + + private int? _startPosX; + + private int? _startPosY; + + private readonly int _drawingTrooperWidth = 150; + + private readonly int _drawingTrooperHeight = 140; + + public void Init(bool wing, int speed, double weight, Color bodyColor, Color additionalColor, bool bodyRockets) + { + EntityStormTrooper = new EntityStormTrooper(); + EntityStormTrooper.Init(wing, speed, weight, bodyColor, additionalColor, bodyRockets); + _pictureWidth = null; + _pictureHeight = null; + _startPosX = null; + _startPosY = null; + } + + public bool SetPictureSize(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 MoveStormTrooper(DirectionType direction) + { + if (EntityStormTrooper == null || !_startPosX.HasValue || !_startPosY.HasValue) + { + return false; + } + switch (direction) + { + //влево + case DirectionType.Left: + if (_startPosX.Value - EntityStormTrooper.Step > 0) + { + _startPosX -= (int)EntityStormTrooper.Step; + } + return true; + //вверх + case DirectionType.Up: + if (_startPosY.Value - EntityStormTrooper.Step > 0) + { + _startPosY -= (int)EntityStormTrooper.Step; + } + return true; + // вправо + case DirectionType.Right: + if (_startPosX.Value + EntityStormTrooper.Step + _drawingTrooperWidth < _pictureWidth) + { + _startPosX += (int)EntityStormTrooper.Step; + } + return true; + //вниз + case DirectionType.Down: + if (_startPosY.Value + EntityStormTrooper.Step + _drawingTrooperHeight< _pictureHeight) + { + _startPosY += (int)EntityStormTrooper.Step; + } + return true; + default: + return false; + } + } + + public void DrawTransport(Graphics g) + { + if (EntityStormTrooper == null || !_startPosX.HasValue || !_startPosY.HasValue) + { + return; + } + if (!_pictureHeight.HasValue || !_pictureWidth.HasValue) return; + Pen pen = new(EntityStormTrooper.BodyColor) + { + Width = 2 + }; + Pen additionalPen = new(EntityStormTrooper.AdditionalColor) + { + Width = 2 + }; + Brush brushBlack = new SolidBrush(EntityStormTrooper.BodyColor); + Brush additionalBrush = new SolidBrush(EntityStormTrooper.AdditionalColor); + + + if (EntityStormTrooper.BodyRockets) + { + // Толщина толстой палочки ракеты + int rocketWidth = 6; + // Длина толстой палочки ракеты + int rocketLength = 15; + + PointF[] rocketsTop = + { + new(_startPosX.Value + 90, _startPosY.Value + 13), + new(_startPosX.Value + 90, _startPosY.Value + 33) + }; + + PointF[] rocketsBottom = + { + new(_startPosX.Value + 90, _startPosY.Value + 103), + new(_startPosX.Value + 90, _startPosY.Value + 123) + }; + + // Прорисовка ракет на верхнем крыле + foreach (PointF rocketPos in rocketsTop) + { + // Толстая палочка для ракеты + g.FillRectangle(additionalBrush, rocketPos.X, rocketPos.Y - (rocketWidth / 2), rocketLength, rocketWidth); + } + + // Прорисовка ракет на нижнем крыле + foreach (PointF rocketPos in rocketsBottom) + { + // Толстая палочка для ракеты + g.FillRectangle(additionalBrush, rocketPos.X, rocketPos.Y - (rocketWidth / 2), rocketLength, rocketWidth); + } + } + + // Прорисовка бомб под крыльями + int bombWidth = 10; + int bombHeight = 15; + + // Позиции бомб под верхним и нижним крылом + PointF[] bombs = + { + new(_startPosX.Value + 75, _startPosY.Value + 15), // Под верхним крылом + new(_startPosX.Value + 75, _startPosY.Value + 105) // Под нижним крылом +}; + + // Рисуем бомбы + foreach (PointF bombPos in bombs) + { + g.FillEllipse(additionalBrush, bombPos.X, bombPos.Y, bombWidth, bombHeight); + g.DrawEllipse(pen, bombPos.X, bombPos.Y, bombWidth, bombHeight); + } + + // Определение точек основных элементов объекта + PointF[] front = + { + new(_startPosX.Value + 130, _startPosY.Value + 53), + new(_startPosX.Value + 155, _startPosY.Value + 66), + new(_startPosX.Value + 130, _startPosY.Value + 79) + }; + + PointF[] tailTop = + { + new(_startPosX.Value, _startPosY.Value + 23), + new(_startPosX.Value, _startPosY.Value + 53), + new(_startPosX.Value + 20, _startPosY.Value + 53), + new(_startPosX.Value + 20, _startPosY.Value + 38) + }; + + PointF[] tailBottom = + { + new(_startPosX.Value, _startPosY.Value + 79), + new(_startPosX.Value, _startPosY.Value + 109), + new(_startPosX.Value + 20, _startPosY.Value + 94), + new(_startPosX.Value + 20, _startPosY.Value + 79) + }; + + PointF[] wingTop = + { + new(_startPosX.Value + 90, _startPosY.Value), + new(_startPosX.Value + 90, _startPosY.Value + 53), + new(_startPosX.Value + 60, _startPosY.Value + 53), + new(_startPosX.Value + 75, _startPosY.Value), + }; + + PointF[] wingBottom = + { + new(_startPosX.Value + 90, _startPosY.Value + 79), + new(_startPosX.Value + 90, _startPosY.Value + 133), + new(_startPosX.Value + 75, _startPosY.Value + 133), + new(_startPosX.Value + 60, _startPosY.Value + 79), + }; + + // Прорисовка основных элементов объекта + g.FillPolygon(brushBlack, front); + g.DrawPolygon(pen, tailTop); + g.DrawPolygon(pen, tailBottom); + g.DrawPolygon(pen, wingTop); + g.DrawPolygon(pen, wingBottom); + g.DrawRectangle(pen, (int)_startPosX, (int)_startPosY + 53, 130, 26); + } +} + + diff --git a/ProjectStormTrooper/ProjectStormTrooper/Form1.Designer.cs b/ProjectStormTrooper/ProjectStormTrooper/Form1.Designer.cs deleted file mode 100644 index 3f39604..0000000 --- a/ProjectStormTrooper/ProjectStormTrooper/Form1.Designer.cs +++ /dev/null @@ -1,46 +0,0 @@ -namespace ProjectStormTrooper -{ - 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(1138, 450); - Name = "Form1"; - Text = "Form1"; - Load += Form1_Load; - ResumeLayout(false); - } - - #endregion - } -} diff --git a/ProjectStormTrooper/ProjectStormTrooper/Form1.cs b/ProjectStormTrooper/ProjectStormTrooper/Form1.cs deleted file mode 100644 index 7c919eb..0000000 --- a/ProjectStormTrooper/ProjectStormTrooper/Form1.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace ProjectStormTrooper -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - - private void Form1_Load(object sender, EventArgs e) - { - - } - } -} diff --git a/ProjectStormTrooper/ProjectStormTrooper/Program.cs b/ProjectStormTrooper/ProjectStormTrooper/Program.cs index 18a9f60..1c17eba 100644 --- a/ProjectStormTrooper/ProjectStormTrooper/Program.cs +++ b/ProjectStormTrooper/ProjectStormTrooper/Program.cs @@ -11,7 +11,7 @@ namespace ProjectStormTrooper // 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 StormTrooperForm()); } } } \ No newline at end of file diff --git a/ProjectStormTrooper/ProjectStormTrooper/ProjectStormTrooper.csproj b/ProjectStormTrooper/ProjectStormTrooper/ProjectStormTrooper.csproj index 663fdb8..af03d74 100644 --- a/ProjectStormTrooper/ProjectStormTrooper/ProjectStormTrooper.csproj +++ b/ProjectStormTrooper/ProjectStormTrooper/ProjectStormTrooper.csproj @@ -8,4 +8,19 @@ enable + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file diff --git a/ProjectStormTrooper/ProjectStormTrooper/Properties/Resources.Designer.cs b/ProjectStormTrooper/ProjectStormTrooper/Properties/Resources.Designer.cs new file mode 100644 index 0000000..8cc1b53 --- /dev/null +++ b/ProjectStormTrooper/ProjectStormTrooper/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ProjectStormTrooper.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("ProjectStormTrooper.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrow_down { + get { + object obj = ResourceManager.GetObject("arrow_down", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrow_left { + get { + object obj = ResourceManager.GetObject("arrow_left", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrow_right { + get { + object obj = ResourceManager.GetObject("arrow_right", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrow_up { + get { + object obj = ResourceManager.GetObject("arrow_up", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/ProjectStormTrooper/ProjectStormTrooper/Properties/Resources.resx b/ProjectStormTrooper/ProjectStormTrooper/Properties/Resources.resx new file mode 100644 index 0000000..3df26db --- /dev/null +++ b/ProjectStormTrooper/ProjectStormTrooper/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 + + + + ..\arrows\arrow_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\arrows\arrow_left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\arrows\arrow_right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\arrows\arrow_up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/ProjectStormTrooper/ProjectStormTrooper/StormTrooperForm.Designer.cs b/ProjectStormTrooper/ProjectStormTrooper/StormTrooperForm.Designer.cs new file mode 100644 index 0000000..6956ae4 --- /dev/null +++ b/ProjectStormTrooper/ProjectStormTrooper/StormTrooperForm.Designer.cs @@ -0,0 +1,139 @@ +namespace ProjectStormTrooper +{ + partial class StormTrooperForm + { + /// + /// 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() + { + buttonCreate = new Button(); + buttonLeft = new Button(); + buttonRight = new Button(); + buttonUp = new Button(); + buttonDown = new Button(); + pictureBox2 = new PictureBox(); + ((System.ComponentModel.ISupportInitialize)pictureBox2).BeginInit(); + SuspendLayout(); + // + // 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 = "Create"; + buttonCreate.UseVisualStyleBackColor = true; + buttonCreate.Click += ButtonCreate_Click; + // + // buttonLeft + // + buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonLeft.BackgroundImage = Properties.Resources.arrow_left; + buttonLeft.BackgroundImageLayout = ImageLayout.Zoom; + buttonLeft.Location = new Point(759, 377); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(30, 30); + buttonLeft.TabIndex = 2; + buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += ButtonMove_Click; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = Properties.Resources.arrow_right; + buttonRight.BackgroundImageLayout = ImageLayout.Zoom; + buttonRight.Location = new Point(831, 377); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(30, 30); + buttonRight.TabIndex = 3; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += ButtonMove_Click; + // + // buttonUp + // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonUp.BackgroundImage = Properties.Resources.arrow_up; + buttonUp.BackgroundImageLayout = ImageLayout.Zoom; + buttonUp.Location = new Point(795, 350); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(30, 30); + buttonUp.TabIndex = 4; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += ButtonMove_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = Properties.Resources.arrow_down; + buttonDown.BackgroundImageLayout = ImageLayout.Zoom; + buttonDown.Location = new Point(795, 409); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(30, 30); + buttonDown.TabIndex = 5; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += ButtonMove_Click; + // + // pictureBox2 + // + pictureBox2.Dock = DockStyle.Fill; + pictureBox2.Location = new Point(0, 0); + pictureBox2.Name = "pictureBox2"; + pictureBox2.Size = new Size(882, 453); + pictureBox2.SizeMode = PictureBoxSizeMode.AutoSize; + pictureBox2.TabIndex = 6; + pictureBox2.TabStop = false; + pictureBox2.Click += ButtonMove_Click; + // + // StormTrooperForm + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(882, 453); + Controls.Add(buttonDown); + Controls.Add(buttonUp); + Controls.Add(buttonRight); + Controls.Add(buttonLeft); + Controls.Add(buttonCreate); + Controls.Add(pictureBox2); + Name = "StormTrooperForm"; + StartPosition = FormStartPosition.CenterScreen; + Text = "StormTrooperForm"; + Load += StormTrooperForm_Load; + Click += ButtonMove_Click; + ((System.ComponentModel.ISupportInitialize)pictureBox2).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + private Button buttonCreate; + private Button buttonLeft; + private Button buttonRight; + private Button buttonUp; + private Button buttonDown; + private PictureBox pictureBox2; + } +} \ No newline at end of file diff --git a/ProjectStormTrooper/ProjectStormTrooper/StormTrooperForm.cs b/ProjectStormTrooper/ProjectStormTrooper/StormTrooperForm.cs new file mode 100644 index 0000000..93018ff --- /dev/null +++ b/ProjectStormTrooper/ProjectStormTrooper/StormTrooperForm.cs @@ -0,0 +1,97 @@ +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 ProjectStormTrooper +{ + public partial class StormTrooperForm : Form + { + private DrawingStormTrooper? _drawingStormTrooper; + + public StormTrooperForm() + { + InitializeComponent(); + } + + public void Draw() + { + if (_drawingStormTrooper == null) + { + return; + } + Bitmap bmp = new(pictureBox2.Width, pictureBox2.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawingStormTrooper.DrawTransport(gr); + pictureBox2.Image = bmp; + } + + + + + private void PictureBox2_Click(object sender, EventArgs e) + { + + } + + private void StormTrooperForm_Load(object sender, EventArgs e) + { + + } + + private void ButtonCreate_Click(object sender, EventArgs e) + { + Random random = new(); + _drawingStormTrooper = new DrawingStormTrooper(); + _drawingStormTrooper.Init(Convert.ToBoolean(random.Next(0, 2)), 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))); + _drawingStormTrooper.SetPictureSize(pictureBox2.Width, + pictureBox2.Height); + _drawingStormTrooper.SetPosition(random.Next(10, 100), random.Next(10, + 100)); + Draw(); + } + private void ButtonMove_Click(object sender, EventArgs e) + { + if (_drawingStormTrooper == null) + { + return; + } + + string name = ((Button)sender)?.Name ?? string.Empty; + bool result = false; + switch (name) + { + case "buttonUp": + result = + _drawingStormTrooper.MoveStormTrooper(DirectionType.Up); + break; + case "buttonDown": + result = + _drawingStormTrooper.MoveStormTrooper(DirectionType.Down); + break; + case "buttonLeft": + result = + _drawingStormTrooper.MoveStormTrooper(DirectionType.Left); + break; + case "buttonRight": + result = + _drawingStormTrooper.MoveStormTrooper(DirectionType.Right); + break; + } + + if (result) + { + Draw(); + } + } + } +} diff --git a/ProjectStormTrooper/ProjectStormTrooper/Form1.resx b/ProjectStormTrooper/ProjectStormTrooper/StormTrooperForm.resx similarity index 100% rename from ProjectStormTrooper/ProjectStormTrooper/Form1.resx rename to ProjectStormTrooper/ProjectStormTrooper/StormTrooperForm.resx diff --git a/ProjectStormTrooper/ProjectStormTrooper/arrows/arrow_down.png b/ProjectStormTrooper/ProjectStormTrooper/arrows/arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..6acd289bd5f97af4e70ac92927698abb627c5a07 GIT binary patch literal 24475 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�y$D(`)Mno%RnDs^XF1#OUW(b$4T5vfp^Uibc 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 VOxym*zc5a&OFh3oyEx>){{sz;Vh{iT literal 0 HcmV?d00001 diff --git a/ProjectStormTrooper/ProjectStormTrooper/arrows/arrow_right.png b/ProjectStormTrooper/ProjectStormTrooper/arrows/arrow_right.png new file mode 100644 index 0000000000000000000000000000000000000000..9482d9fe56e4d5b7b6917dcd3827e5dda23ec2a1 GIT binary patch literal 20136 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�$#XER2jI>M83it>6Rv()W+ER@_OQGiB^rfM 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 YzvMZ^QNhwzp>3VFdHh!KEA{vP11wIBng9R* literal 0 HcmV?d00001 -- 2.25.1 From 90dcb90e2cc9cfdd411ccadbb55b17026ef46da6 Mon Sep 17 00:00:00 2001 From: Ivan Rotov Date: Mon, 17 Feb 2025 11:47:08 +0400 Subject: [PATCH 2/3] Commit 2 --- .../ProjectStormTrooper/Class1.cs | 6 +++- .../DrawingStormTrooper.cs | 28 ++++++++++--------- .../ProjectStormTrooper/StormTrooperForm.cs | 2 +- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/ProjectStormTrooper/ProjectStormTrooper/Class1.cs b/ProjectStormTrooper/ProjectStormTrooper/Class1.cs index 210505c..33fd86c 100644 --- a/ProjectStormTrooper/ProjectStormTrooper/Class1.cs +++ b/ProjectStormTrooper/ProjectStormTrooper/Class1.cs @@ -24,12 +24,15 @@ public class EntityStormTrooper public bool BodyRockets { get; private set; } + public bool Bombs { get; private set; } + + //movement public double Step => Speed * 500 / Weight; public bool Wing { get; private set; } - public void Init(bool wing, int speed, double weight, Color bodyColor, Color additionalColor, bool bodyRockets) + public void Init(bool wing, int speed, double weight, Color bodyColor, Color additionalColor, bool bodyRockets, bool bombs) { Speed = speed; Weight = weight; @@ -37,6 +40,7 @@ public class EntityStormTrooper AdditionalColor = additionalColor; Wing = wing; BodyRockets = bodyRockets; + Bombs = bombs; } diff --git a/ProjectStormTrooper/ProjectStormTrooper/DrawingStormTrooper.cs b/ProjectStormTrooper/ProjectStormTrooper/DrawingStormTrooper.cs index bbc0671..720ba79 100644 --- a/ProjectStormTrooper/ProjectStormTrooper/DrawingStormTrooper.cs +++ b/ProjectStormTrooper/ProjectStormTrooper/DrawingStormTrooper.cs @@ -24,10 +24,10 @@ public class DrawingStormTrooper private readonly int _drawingTrooperHeight = 140; - public void Init(bool wing, int speed, double weight, Color bodyColor, Color additionalColor, bool bodyRockets) + public void Init(bool wing, int speed, double weight, Color bodyColor, Color additionalColor, bool bodyRockets, bool bombs) { EntityStormTrooper = new EntityStormTrooper(); - EntityStormTrooper.Init(wing, speed, weight, bodyColor, additionalColor, bodyRockets); + EntityStormTrooper.Init(wing, speed, weight, bodyColor, additionalColor, bodyRockets, bombs); _pictureWidth = null; _pictureHeight = null; _startPosX = null; @@ -145,23 +145,25 @@ public class DrawingStormTrooper } // Прорисовка бомб под крыльями - int bombWidth = 10; - int bombHeight = 15; - - // Позиции бомб под верхним и нижним крылом - PointF[] bombs = + if (EntityStormTrooper.Bombs) { + int bombWidth = 10; + int bombHeight = 15; + + // Позиции бомб под верхним и нижним крылом + PointF[] bombs = + { new(_startPosX.Value + 75, _startPosY.Value + 15), // Под верхним крылом new(_startPosX.Value + 75, _startPosY.Value + 105) // Под нижним крылом }; - // Рисуем бомбы - foreach (PointF bombPos in bombs) - { - g.FillEllipse(additionalBrush, bombPos.X, bombPos.Y, bombWidth, bombHeight); - g.DrawEllipse(pen, bombPos.X, bombPos.Y, bombWidth, bombHeight); + // Рисуем бомбы + foreach (PointF bombPos in bombs) + { + g.FillEllipse(additionalBrush, bombPos.X, bombPos.Y, bombWidth, bombHeight); + g.DrawEllipse(pen, bombPos.X, bombPos.Y, bombWidth, bombHeight); + } } - // Определение точек основных элементов объекта PointF[] front = { diff --git a/ProjectStormTrooper/ProjectStormTrooper/StormTrooperForm.cs b/ProjectStormTrooper/ProjectStormTrooper/StormTrooperForm.cs index 93018ff..72a88de 100644 --- a/ProjectStormTrooper/ProjectStormTrooper/StormTrooperForm.cs +++ b/ProjectStormTrooper/ProjectStormTrooper/StormTrooperForm.cs @@ -52,7 +52,7 @@ namespace ProjectStormTrooper 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))); +random.Next(0, 256)), Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2))); _drawingStormTrooper.SetPictureSize(pictureBox2.Width, pictureBox2.Height); _drawingStormTrooper.SetPosition(random.Next(10, 100), random.Next(10, -- 2.25.1 From 449a5c1655c10ee1a6e8f7810198290957151cc1 Mon Sep 17 00:00:00 2001 From: Ivan Rotov Date: Mon, 17 Feb 2025 13:07:02 +0400 Subject: [PATCH 3/3] commit 3 --- .../ProjectStormTrooper/DrawingStormTrooper.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ProjectStormTrooper/ProjectStormTrooper/DrawingStormTrooper.cs b/ProjectStormTrooper/ProjectStormTrooper/DrawingStormTrooper.cs index 720ba79..7127c4f 100644 --- a/ProjectStormTrooper/ProjectStormTrooper/DrawingStormTrooper.cs +++ b/ProjectStormTrooper/ProjectStormTrooper/DrawingStormTrooper.cs @@ -20,9 +20,9 @@ public class DrawingStormTrooper private int? _startPosY; - private readonly int _drawingTrooperWidth = 150; + private readonly int _drawingTrooperWidth = 140; - private readonly int _drawingTrooperHeight = 140; + private readonly int _drawingTrooperHeight = 120; public void Init(bool wing, int speed, double weight, Color bodyColor, Color additionalColor, bool bodyRockets, bool bombs) { @@ -36,6 +36,9 @@ public class DrawingStormTrooper public bool SetPictureSize(int width, int height) { + + if (_drawingTrooperHeight > height || _drawingTrooperWidth > width) { return false; } + _pictureWidth = width; _pictureHeight = height; @@ -47,6 +50,10 @@ public class DrawingStormTrooper { return; } + if (x < 0 || y < 0 || x + _drawingTrooperWidth > _pictureWidth || y + _drawingTrooperHeight > _pictureHeight) + { + return; + } _startPosX = x; _startPosY = y; } -- 2.25.1