From 0b05f36492a703b694f5b0ead289d5d67be7a432 Mon Sep 17 00:00:00 2001 From: rakhaliullov Date: Thu, 29 Feb 2024 15:51:46 +0300 Subject: [PATCH] lab1 --- Stormtrooper/Stormtrooper.sln | 12 +- Stormtrooper/Stormtrooper/DirectionType.cs | 20 ++ .../Stormtrooper/DrawningStormtrooper.cs | 242 ++++++++++++++++++ .../Stormtrooper/EntityStormtrooper.cs | 50 ++++ Stormtrooper/Stormtrooper/Form1.Designer.cs | 39 --- Stormtrooper/Stormtrooper/Form1.cs | 10 - .../Stormtrooper/FormStormtrooper.Designer.cs | 137 ++++++++++ Stormtrooper/Stormtrooper/FormStormtrooper.cs | 95 +++++++ .../{Form1.resx => FormStormtrooper.resx} | 50 ++-- Stormtrooper/Stormtrooper/Program.cs | 2 +- .../Properties/Resources.Designer.cs | 103 ++++++++ .../Stormtrooper/Properties/Resources.resx | 133 ++++++++++ .../Stormtrooper/Resources/Вверх.png | Bin 0 -> 3468 bytes .../Stormtrooper/Resources/Влево.png | Bin 0 -> 8798 bytes .../Stormtrooper/Resources/Вниз.png | Bin 0 -> 8412 bytes .../Stormtrooper/Resources/Вправо.png | Bin 0 -> 8872 bytes Stormtrooper/Stormtrooper/Stormtrooper.csproj | 15 ++ 17 files changed, 827 insertions(+), 81 deletions(-) create mode 100644 Stormtrooper/Stormtrooper/DirectionType.cs create mode 100644 Stormtrooper/Stormtrooper/DrawningStormtrooper.cs create mode 100644 Stormtrooper/Stormtrooper/EntityStormtrooper.cs delete mode 100644 Stormtrooper/Stormtrooper/Form1.Designer.cs delete mode 100644 Stormtrooper/Stormtrooper/Form1.cs create mode 100644 Stormtrooper/Stormtrooper/FormStormtrooper.Designer.cs create mode 100644 Stormtrooper/Stormtrooper/FormStormtrooper.cs rename Stormtrooper/Stormtrooper/{Form1.resx => FormStormtrooper.resx} (93%) create mode 100644 Stormtrooper/Stormtrooper/Properties/Resources.Designer.cs create mode 100644 Stormtrooper/Stormtrooper/Properties/Resources.resx create mode 100644 Stormtrooper/Stormtrooper/Resources/Вверх.png create mode 100644 Stormtrooper/Stormtrooper/Resources/Влево.png create mode 100644 Stormtrooper/Stormtrooper/Resources/Вниз.png create mode 100644 Stormtrooper/Stormtrooper/Resources/Вправо.png diff --git a/Stormtrooper/Stormtrooper.sln b/Stormtrooper/Stormtrooper.sln index 8dd330a..f58eca3 100644 --- a/Stormtrooper/Stormtrooper.sln +++ b/Stormtrooper/Stormtrooper.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.7.34024.191 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Stormtrooper", "Stormtrooper\Stormtrooper.csproj", "{A775C90C-D40F-469A-8611-8AD280F825A7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Stormtrooper", "Stormtrooper\Stormtrooper.csproj", "{4514655F-132F-407B-9B51-2E0EC52BC983}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,15 +11,15 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A775C90C-D40F-469A-8611-8AD280F825A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A775C90C-D40F-469A-8611-8AD280F825A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A775C90C-D40F-469A-8611-8AD280F825A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A775C90C-D40F-469A-8611-8AD280F825A7}.Release|Any CPU.Build.0 = Release|Any CPU + {4514655F-132F-407B-9B51-2E0EC52BC983}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4514655F-132F-407B-9B51-2E0EC52BC983}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4514655F-132F-407B-9B51-2E0EC52BC983}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4514655F-132F-407B-9B51-2E0EC52BC983}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1E81B7C7-7A49-44CB-A3CF-084E7ED9D5A0} + SolutionGuid = {C4A7E3D1-19CD-4A52-A751-F28B86FF0564} EndGlobalSection EndGlobal diff --git a/Stormtrooper/Stormtrooper/DirectionType.cs b/Stormtrooper/Stormtrooper/DirectionType.cs new file mode 100644 index 0000000..cf5dd7d --- /dev/null +++ b/Stormtrooper/Stormtrooper/DirectionType.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Stormtrooper +{ + public enum DirectionType + { + Up = 1, + + Down = 2, + + Left = 3, + + Right = 4, + + } +} diff --git a/Stormtrooper/Stormtrooper/DrawningStormtrooper.cs b/Stormtrooper/Stormtrooper/DrawningStormtrooper.cs new file mode 100644 index 0000000..28471bc --- /dev/null +++ b/Stormtrooper/Stormtrooper/DrawningStormtrooper.cs @@ -0,0 +1,242 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Reflection.Metadata; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Stormtrooper; +public class DrawningStormtrooper +{ + // Класс-сущность + public EntityStormtrooper? EntityStormtrooper { get; private set; } + + // Ширина окна + + public int? _pictureWidth; + + // Высота окна + + public int? _pictureHeight; + + // Левая координата прорисовки штурмовика + + public int? _startPosX; + + // Верхняя координата прорисовки автомобиля + + public int? _startPosY; + + // Ширина прорисовки штурмовика + + private readonly int _drawningStormtrooperWidth = 140; + + // Высота прорисовки штурмовика + + private readonly int _drawningStormtrooperHeight = 150; + + // Инициализация свойств + + /// Скорость + /// Вес + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия ракет + /// Признак наличия бомбы + /// Признак наличия крыла + public void Init(int speed, double weight, Color bodyColor, Color + additionalColor, bool rocket, bool bomb, bool wing) + { + EntityStormtrooper = new EntityStormtrooper(); + EntityStormtrooper.Init(speed, weight, bodyColor, additionalColor,rocket, bomb, wing); + _pictureWidth = null; + _pictureHeight = null; + _startPosX = null; + _startPosY = null; + } + // Установка границ поля + + /// Ширина поля + /// Высота поля + public bool SetPictureSize(int width, int height) + { + if (_drawningStormtrooperHeight > height || _drawningStormtrooperWidth > width) + { + return false; + } + + _pictureWidth = width; + _pictureHeight = height; + + if (_startPosX.HasValue && _startPosY.HasValue) + { + SetPosition(_startPosX.Value, _startPosY.Value); + } + + return true; + } + + // Установка позиции + /// Координата X + /// Координата Y + public void SetPosition(int x, int y) + { + if (!_pictureHeight.HasValue || !_pictureWidth.HasValue) + { + return; + } + + if (x < 0 || x + _drawningStormtrooperWidth > _pictureWidth || y < 0 || y + _drawningStormtrooperHeight > _pictureHeight) + { + _startPosX = _pictureWidth - _drawningStormtrooperWidth; + _startPosY = _pictureHeight - _drawningStormtrooperHeight; + } + else + { + _startPosX = x; + _startPosY = y; + } + } + + // Изменение направления перемещения + public bool MoveTransport(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 + _drawningStormtrooperWidth < _pictureWidth) + { + _startPosX += (int)EntityStormtrooper.Step; + return true; + } + return true; + //вниз + case DirectionType.Down: + if (_startPosY.Value + EntityStormtrooper.Step + _drawningStormtrooperHeight < _pictureHeight) + { + _startPosY += (int)EntityStormtrooper.Step; + } + return true; + default: + return false; + } + } + /// Прорисовка объекта + /// + public void DrawTransport(Graphics g) + { + if (EntityStormtrooper == null || !_startPosX.HasValue || !_startPosY.HasValue) + { + return; + } + + Pen pen = new(Color.Black); + Brush bodyColorBrush = new SolidBrush(EntityStormtrooper.BodyColor); + Brush additionalBrush = new SolidBrush(EntityStormtrooper.AdditionalColor); + + //нос штурмовика + Brush brBlack = new SolidBrush(Color.Black); + + Point[] Nose = new Point[3]; + Nose[0].X = _startPosX.Value + 20; Nose[0].Y = _startPosY.Value + 80; + Nose[1].X = _startPosX.Value + 20; Nose[1].Y = _startPosY.Value + 60; + Nose[2].X = _startPosX.Value; Nose[2].Y = _startPosY.Value + 70; + g.FillPolygon(brBlack, Nose); + g.DrawPolygon(pen, Nose); + //Заднии крылья штурмовика + + Point[] pflybtwings = new Point[6]; + pflybtwings[0].X = _startPosX.Value + 120; pflybtwings[0].Y = _startPosY.Value + 60; + pflybtwings[1].X = _startPosX.Value + 120; pflybtwings[1].Y = _startPosY.Value + 50; + pflybtwings[2].X = _startPosX.Value + 140; pflybtwings[2].Y = _startPosY.Value + 30; + pflybtwings[3].X = _startPosX.Value + 140; pflybtwings[3].Y = _startPosY.Value + 110; + pflybtwings[4].X = _startPosX.Value + 120; pflybtwings[4].Y = _startPosY.Value + 90; + pflybtwings[5].X = _startPosX.Value + 120; pflybtwings[5].Y = _startPosY.Value + 80; + g.FillPolygon(bodyColorBrush, pflybtwings); + g.DrawPolygon(pen, pflybtwings); + //Тело штурмовика + g.FillRectangle(bodyColorBrush, _startPosX.Value + 20, _startPosY.Value + 60, 120, 20); + g.DrawRectangle(pen, _startPosX.Value + 20, _startPosY.Value + 60, 120, 20); + + + //Крылья штурмовика + + + Point[] frontwings = new Point[4]; + frontwings[0].X = _startPosX.Value + 60; frontwings[0].Y = _startPosY.Value + 60; + frontwings[1].X = _startPosX.Value + 60; frontwings[1].Y = _startPosY.Value; + frontwings[2].X = _startPosX.Value + 70; frontwings[2].Y = _startPosY.Value; + frontwings[3].X = _startPosX.Value + 80; frontwings[3].Y = _startPosY.Value + 60; + g.FillPolygon(bodyColorBrush, frontwings); + g.DrawPolygon(pen, frontwings); + + Point[] frontwings2 = new Point[4]; + frontwings2[0].X = _startPosX.Value + 60; frontwings2[0].Y = _startPosY.Value + 80; + frontwings2[1].X = _startPosX.Value + 60; frontwings2[1].Y = _startPosY.Value + 140; + frontwings2[2].X = _startPosX.Value + 70; frontwings2[2].Y = _startPosY.Value + 140; + frontwings2[3].X = _startPosX.Value + 80; frontwings2[3].Y = _startPosY.Value + 80; + g.FillPolygon(bodyColorBrush, frontwings2); + g.DrawPolygon(pen, frontwings2); + + + //Ракеты штурмовика + + + + if (EntityStormtrooper.Rocket) + { + Point[] rockets = new Point[3]; + rockets[0].X = _startPosX.Value + 45; rockets[0].Y = _startPosY.Value + 20; + rockets[1].X = _startPosX.Value + 37; rockets[1].Y = _startPosY.Value + 22; + rockets[2].X = _startPosX.Value + 45; rockets[2].Y = _startPosY.Value + 25; + + Point[] rockets2 = new Point[3]; + rockets2[0].X = _startPosX.Value + 45; rockets2[0].Y = _startPosY.Value + 110; + rockets2[1].X = _startPosX.Value + 37; rockets2[1].Y = _startPosY.Value + 112; + rockets2[2].X = _startPosX.Value + 45; rockets2[2].Y = _startPosY.Value + 115; + g.FillRectangle(additionalBrush, _startPosX.Value + 45, _startPosY.Value + 20, 15, 5); + g.FillRectangle(additionalBrush, _startPosX.Value + 45, _startPosY.Value + 110, 15, 5); + g.DrawRectangle(pen, _startPosX.Value + 45, _startPosY.Value + 20, 15, 5); + g.DrawRectangle(pen, _startPosX.Value + 45, _startPosY.Value + 110, 15, 5); + g.FillPolygon(bodyColorBrush, rockets); + g.DrawPolygon(pen, rockets); + g.FillPolygon(bodyColorBrush, rockets2); + g.DrawPolygon(pen, rockets2); + + + } + //Бомбы бомбардировщика + + + if (EntityStormtrooper.Bomb) + { + g.FillRectangle(additionalBrush, _startPosX.Value + 50, _startPosY.Value + 40, 10, 10); + g.FillRectangle(additionalBrush, _startPosX.Value + 50, _startPosY.Value + 90, 10, 10); + g.DrawRectangle(pen, _startPosX.Value + 50, _startPosY.Value + 40, 10, 10); + g.DrawRectangle(pen, _startPosX.Value + 50, _startPosY.Value + 90, 10, 10); + + } + } +} \ No newline at end of file diff --git a/Stormtrooper/Stormtrooper/EntityStormtrooper.cs b/Stormtrooper/Stormtrooper/EntityStormtrooper.cs new file mode 100644 index 0000000..3a6e4cf --- /dev/null +++ b/Stormtrooper/Stormtrooper/EntityStormtrooper.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Stormtrooper +{ + public class EntityStormtrooper + { + public int Speed { get; private set; } + // скорость + public double Weight { get; private set; } + // вес + public Color BodyColor { get; private set; } + // цвет + public Color AdditionalColor { get; private set; } + // дополнительные цвета + public bool Rocket { get; private set; } + // ракета + public bool Bomb { get; private set; } + // бомба + public bool Wing { get; private set; } + // крыло + public double Step => Speed * 100 / Weight; + // шаг в поле + + /// Инициализация полей объекта-класса штурмовика + + /// Скорость + /// Вес штурмовика + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия ракет + /// Признак наличия бомб + /// Признак наличия крыла а + + public void Init(int speed, double weight, Color bodyColor, Color + additionalColor, bool rocket, bool bomb, bool wing) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + Rocket = rocket; + Bomb = bomb; + Wing = wing; + } + } +} diff --git a/Stormtrooper/Stormtrooper/Form1.Designer.cs b/Stormtrooper/Stormtrooper/Form1.Designer.cs deleted file mode 100644 index 28d28b5..0000000 --- a/Stormtrooper/Stormtrooper/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace Stormtrooper -{ - 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() - { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "Form1"; - } - - #endregion - } -} \ No newline at end of file diff --git a/Stormtrooper/Stormtrooper/Form1.cs b/Stormtrooper/Stormtrooper/Form1.cs deleted file mode 100644 index 57525e6..0000000 --- a/Stormtrooper/Stormtrooper/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Stormtrooper -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/Stormtrooper/Stormtrooper/FormStormtrooper.Designer.cs b/Stormtrooper/Stormtrooper/FormStormtrooper.Designer.cs new file mode 100644 index 0000000..3561ad3 --- /dev/null +++ b/Stormtrooper/Stormtrooper/FormStormtrooper.Designer.cs @@ -0,0 +1,137 @@ +namespace Stormtrooper +{ + partial class FormStormtrooper + { + /// + /// 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() + { + pictureBoxStormtrooper = new PictureBox(); + buttonCreate = new Button(); + buttonUp = new Button(); + buttonDown = new Button(); + buttonLeft = new Button(); + buttonRight = new Button(); + ((System.ComponentModel.ISupportInitialize)pictureBoxStormtrooper).BeginInit(); + SuspendLayout(); + // + // pictureBoxStormtrooper + // + pictureBoxStormtrooper.Dock = DockStyle.Fill; + pictureBoxStormtrooper.Location = new Point(0, 0); + pictureBoxStormtrooper.Name = "pictureBoxStormtrooper"; + pictureBoxStormtrooper.Size = new Size(773, 439); + pictureBoxStormtrooper.TabIndex = 0; + pictureBoxStormtrooper.TabStop = false; + pictureBoxStormtrooper.Click += pictureBoxStormtrooper_Click; + // + // buttonCreate + // + buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreate.Location = new Point(12, 398); + buttonCreate.Name = "buttonCreate"; + buttonCreate.Size = new Size(94, 29); + buttonCreate.TabIndex = 1; + buttonCreate.Text = "Создать"; + buttonCreate.UseVisualStyleBackColor = true; + buttonCreate.Click += ButtonCreate_Click; + // + // buttonUp + // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonUp.BackgroundImage = Properties.Resources.Вверх; + buttonUp.BackgroundImageLayout = ImageLayout.Stretch; + buttonUp.Location = new Point(663, 293); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(35, 35); + buttonUp.TabIndex = 2; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += ButtonMove_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = Properties.Resources.Вниз; + buttonDown.BackgroundImageLayout = ImageLayout.Stretch; + buttonDown.Location = new Point(663, 374); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(35, 35); + buttonDown.TabIndex = 4; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += ButtonMove_Click; + // + // buttonLeft + // + buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonLeft.BackgroundImage = Properties.Resources.Влево; + buttonLeft.BackgroundImageLayout = ImageLayout.Stretch; + buttonLeft.Location = new Point(617, 331); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(35, 35); + buttonLeft.TabIndex = 5; + buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += ButtonMove_Click; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = Properties.Resources.Вправо; + buttonRight.BackgroundImageLayout = ImageLayout.Stretch; + buttonRight.Location = new Point(711, 331); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(35, 35); + buttonRight.TabIndex = 6; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += ButtonMove_Click; + // + // FormStormtrooper + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(773, 439); + Controls.Add(buttonRight); + Controls.Add(buttonLeft); + Controls.Add(buttonDown); + Controls.Add(buttonUp); + Controls.Add(buttonCreate); + Controls.Add(pictureBoxStormtrooper); + Name = "FormStormtrooper"; + Text = "Штурмовик"; + Load += FormStormtrooper_Load; + Click += ButtonMove_Click; + ((System.ComponentModel.ISupportInitialize)pictureBoxStormtrooper).EndInit(); + ResumeLayout(false); + } + + #endregion + + private PictureBox pictureBoxStormtrooper; + private Button buttonCreate; + private Button buttonUp; + private Button buttonDown; + private Button buttonLeft; + private Button buttonRight; + } +} \ No newline at end of file diff --git a/Stormtrooper/Stormtrooper/FormStormtrooper.cs b/Stormtrooper/Stormtrooper/FormStormtrooper.cs new file mode 100644 index 0000000..00bc307 --- /dev/null +++ b/Stormtrooper/Stormtrooper/FormStormtrooper.cs @@ -0,0 +1,95 @@ +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 Stormtrooper +{ + public partial class FormStormtrooper : Form + { + // Поле объект для прорисовки объекта + public DrawningStormtrooper? _drawningStormtrooper; + // Конструктор формы + public FormStormtrooper() + { + InitializeComponent(); + } + + // Метод прорисовки машины + private void FormStormtrooper_Load(object sender, EventArgs e) + { + + } + + // Обработка нажатия кнопки Создать + private void ButtonCreate_Click(object sender, EventArgs e) + { + Random random = new(); + _drawningStormtrooper = new DrawningStormtrooper(); + _drawningStormtrooper.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))); + _drawningStormtrooper.SetPictureSize(pictureBoxStormtrooper.Width, pictureBoxStormtrooper.Height); + _drawningStormtrooper.SetPosition(random.Next(10, 100), random.Next(10, 100)); + + Bitmap bmp = new(pictureBoxStormtrooper.Width, pictureBoxStormtrooper.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawningStormtrooper.DrawTransport(gr); + pictureBoxStormtrooper.Image = bmp; + } + private void Draw() + { + if (_drawningStormtrooper == null) + { + return; + } + Bitmap bmp = new(pictureBoxStormtrooper.Width, + pictureBoxStormtrooper.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawningStormtrooper.DrawTransport(gr); + pictureBoxStormtrooper.Image = bmp; + } + private void ButtonMove_Click(object sender, EventArgs e) + { + if (_drawningStormtrooper == null) + { + return; + } + + string name = ((Button)sender)?.Name ?? string.Empty; + bool result = false; + switch (name) + { + case "buttonUp": + result = _drawningStormtrooper.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + result = _drawningStormtrooper.MoveTransport(DirectionType.Down); + break; + case "buttonLeft": + result = _drawningStormtrooper.MoveTransport(DirectionType.Left); + break; + case "buttonRight": + result = _drawningStormtrooper.MoveTransport(DirectionType.Right); + break; + } + if (result) + { + Draw(); + } + + + } + + private void pictureBoxStormtrooper_Click(object sender, EventArgs e) + { + + } + } +} diff --git a/Stormtrooper/Stormtrooper/Form1.resx b/Stormtrooper/Stormtrooper/FormStormtrooper.resx similarity index 93% rename from Stormtrooper/Stormtrooper/Form1.resx rename to Stormtrooper/Stormtrooper/FormStormtrooper.resx index 1af7de1..af32865 100644 --- a/Stormtrooper/Stormtrooper/Form1.resx +++ b/Stormtrooper/Stormtrooper/FormStormtrooper.resx @@ -1,17 +1,17 @@  - diff --git a/Stormtrooper/Stormtrooper/Program.cs b/Stormtrooper/Stormtrooper/Program.cs index 6351355..f56f0d8 100644 --- a/Stormtrooper/Stormtrooper/Program.cs +++ b/Stormtrooper/Stormtrooper/Program.cs @@ -11,7 +11,7 @@ namespace Stormtrooper // 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 FormStormtrooper()); } } } \ No newline at end of file diff --git a/Stormtrooper/Stormtrooper/Properties/Resources.Designer.cs b/Stormtrooper/Stormtrooper/Properties/Resources.Designer.cs new file mode 100644 index 0000000..0356d6f --- /dev/null +++ b/Stormtrooper/Stormtrooper/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace Stormtrooper.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("Stormtrooper.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 Вверх { + get { + object obj = ResourceManager.GetObject("Вверх", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Влево { + get { + object obj = ResourceManager.GetObject("Влево", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Вниз { + get { + object obj = ResourceManager.GetObject("Вниз", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Вправо { + get { + object obj = ResourceManager.GetObject("Вправо", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Stormtrooper/Stormtrooper/Properties/Resources.resx b/Stormtrooper/Stormtrooper/Properties/Resources.resx new file mode 100644 index 0000000..ba0583c --- /dev/null +++ b/Stormtrooper/Stormtrooper/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\Вверх.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Влево.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Вниз.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Вправо.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Stormtrooper/Stormtrooper/Resources/Вверх.png b/Stormtrooper/Stormtrooper/Resources/Вверх.png new file mode 100644 index 0000000000000000000000000000000000000000..9797b9bb02d301ce719dc7a61d04f6f2d3d055c8 GIT binary patch literal 3468 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 S*OJ!=ewH|U@NyRV@B1Hpsvg1s literal 0 HcmV?d00001 diff --git a/Stormtrooper/Stormtrooper/Resources/Вправо.png b/Stormtrooper/Stormtrooper/Resources/Вправо.png new file mode 100644 index 0000000000000000000000000000000000000000..b8e592a90785a267ca48fdada1ea32f497734dec GIT binary patch literal 8872 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 N7s3zcoefwk{XZZV1iAnK literal 0 HcmV?d00001 diff --git a/Stormtrooper/Stormtrooper/Stormtrooper.csproj b/Stormtrooper/Stormtrooper/Stormtrooper.csproj index e1a0735..244387d 100644 --- a/Stormtrooper/Stormtrooper/Stormtrooper.csproj +++ b/Stormtrooper/Stormtrooper/Stormtrooper.csproj @@ -8,4 +8,19 @@ enable + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file