From 590295ca3fe1ee4e9b615a69343584c49bc61a2f Mon Sep 17 00:00:00 2001 From: Zyzf Date: Sat, 8 Oct 2022 15:18:48 +0400 Subject: [PATCH] fixed init --- .../Direction.cs | 16 ++ .../DrawningBoat.cs | 163 ++++++++++++++++ .../EntityBoat.cs | 24 +++ .../Form1.Designer.cs | 39 ---- PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Form1.cs | 10 - .../FormBoat.Designer.cs | 183 ++++++++++++++++++ .../FormBoat.cs | 74 +++++++ .../FormBoat.resx | 63 ++++++ .../Program.cs | 2 +- .../Properties/Resources.Designer.cs | 103 ++++++++++ .../{Form1.resx => Properties/Resources.resx} | 13 ++ .../Resources/down1.png | Bin 0 -> 8025 bytes .../Resources/left1.png | Bin 0 -> 6955 bytes .../Resources/right1.png | Bin 0 -> 466 bytes .../Resources/up1.png | Bin 0 -> 7969 bytes 15 files changed, 640 insertions(+), 50 deletions(-) create mode 100644 PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Direction.cs create mode 100644 PIbd-22_Kalyshev_Y_V_MotorBoat_Base/DrawningBoat.cs create mode 100644 PIbd-22_Kalyshev_Y_V_MotorBoat_Base/EntityBoat.cs delete mode 100644 PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Form1.Designer.cs delete mode 100644 PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Form1.cs create mode 100644 PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormBoat.Designer.cs create mode 100644 PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormBoat.cs create mode 100644 PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormBoat.resx create mode 100644 PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Properties/Resources.Designer.cs rename PIbd-22_Kalyshev_Y_V_MotorBoat_Base/{Form1.resx => Properties/Resources.resx} (83%) create mode 100644 PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Resources/down1.png create mode 100644 PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Resources/left1.png create mode 100644 PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Resources/right1.png create mode 100644 PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Resources/up1.png diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Direction.cs b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Direction.cs new file mode 100644 index 0000000..08bdb41 --- /dev/null +++ b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Direction.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base +{ + internal enum Direction + { + Up = 1, + Down = 2, + Left = 3, + Right = 4 + } +} diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/DrawningBoat.cs b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/DrawningBoat.cs new file mode 100644 index 0000000..707c66d --- /dev/null +++ b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/DrawningBoat.cs @@ -0,0 +1,163 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base +{ + internal class DrawningBoat + { + /// + /// Класс-сущность + /// + public EntityBoat Boat { private set; get; } + /// + /// Левая координата отрисовки автомобиля + /// + private float _startPosX; + /// + /// Верхняя кооридната отрисовки автомобиля + /// + private float _startPosY; + /// + /// Ширина окна отрисовки + /// + private int? _pictureWidth = null; + /// + /// Высота окна отрисовки + /// + private int? _pictureHeight = null; + /// + /// Ширина отрисовки автомобиля + /// + private readonly int _boatWidth = 170; + /// + /// Высота отрисовки автомобиля + /// + private readonly int _boatHeight = 60; + /// + /// Инициализация свойств + /// + /// Скорость + /// Вес автомобиля + /// Цвет кузова + public void Init(int speed, float weight, Color bodyColor) + { + Boat = new EntityBoat(); + Boat.Init(speed, weight, bodyColor); + } + /// + /// Установка позиции автомобиля + /// + /// Координата X + /// Координата Y + /// Ширина картинки + /// Высота картинки + public void SetPosition(int x, int y, int width, int height) + { + if (x + _boatWidth <= width && y + _boatHeight <= height && x > 0 && y > 0) + { + _startPosX = x; + _startPosY = y; + _pictureWidth = width; + _pictureHeight = height; + } + } + /// + /// Изменение направления перемещения + /// + /// Направление + public void MoveTransport(Direction direction) + { + if (!_pictureWidth.HasValue || !_pictureHeight.HasValue) + { + return; + } + switch (direction) + { + // вправо + case Direction.Right: + if (_startPosX + _boatWidth + Boat.Step < _pictureWidth) + { + _startPosX += Boat.Step; + } + break; + //влево + case Direction.Left: + if (_startPosX - Boat.Step > 0) + { + _startPosX -= Boat.Step; + } + break; + //вверх + case Direction.Up: + if (_startPosY - Boat.Step > 0) + { + _startPosY -= Boat.Step; + } + break; + //вниз + case Direction.Down: + if (_startPosY + _boatHeight + Boat.Step < _pictureHeight) + { + _startPosY += Boat.Step; + } + break; + } + } + /// + /// Отрисовка лодки + /// + /// + public void DrawTransport(Graphics g) + { + if (_startPosX < 0 || _startPosY < 0 + || !_pictureHeight.HasValue || !_pictureWidth.HasValue) + { + return; + } + Pen pen = new(Color.Black, 3); + Brush br = new SolidBrush(Boat?.BodyColor ?? Color.Black); + Brush brBrown = new SolidBrush(Color.Brown); + // Внешняя часть лодки + g.DrawLine(pen, _startPosX, _startPosY, _startPosX + 120, _startPosY + 0); + g.DrawLine(pen, _startPosX + 120, _startPosY, _startPosX + 170, _startPosY + 30); + g.DrawLine(pen, _startPosX + 170, _startPosY + 30, _startPosX + 120, _startPosY + 60); + g.DrawLine(pen, _startPosX + 120, _startPosY + 60, _startPosX, _startPosY + 60); + g.DrawLine(pen, _startPosX, _startPosY + 60, _startPosX, _startPosY); + PointF pt1 = new PointF(_startPosX, _startPosY); + PointF pt2 = new PointF(_startPosX + 120, _startPosY); + PointF pt3 = new PointF(_startPosX + 170, _startPosY + 30); + PointF pt4 = new PointF(_startPosX + 120, _startPosY + 60); + PointF pt5 = new PointF(_startPosX, _startPosY + 60); + g.FillPolygon(br, new PointF[] { pt1, pt2, pt3, pt4, pt5}); + // Внутренняя часть лодки + g.FillEllipse(brBrown, _startPosX + 10, _startPosY + 10, 110, 40); + } + /// + /// Смена границ формы отрисовки + /// + /// Ширина картинки + /// Высота картинки + public void ChangeBorders(int width, int height) + { + _pictureWidth = width; + _pictureHeight = height; + if (_pictureWidth <= _boatWidth || _pictureHeight <= _boatHeight) + { + _pictureWidth = null; + _pictureHeight = null; + return; + } + if (_startPosX + _boatWidth > _pictureWidth) + { + _startPosX = _pictureWidth.Value - _boatWidth; + } + if (_startPosY + _boatHeight > _pictureHeight) + { + _startPosY = _pictureHeight.Value - _boatHeight; + } + } + } +} diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/EntityBoat.cs b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/EntityBoat.cs new file mode 100644 index 0000000..2e68e8e --- /dev/null +++ b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/EntityBoat.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base +{ + internal class EntityBoat + { + public int Speed { get; private set; } + public float Weight { get; private set; } + public Color BodyColor { get; private set; } + public float Step => Speed * 100 / Weight; + public void Init(int speed, float weight, Color bodyColor) + { + Random rnd = new(); + Speed = speed <= 0 ? rnd.Next(5, 30) : speed; + Weight = weight <= 0 ? rnd.Next(30, 100) : weight; + BodyColor = bodyColor; + } + + } +} diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Form1.Designer.cs b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Form1.Designer.cs deleted file mode 100644 index 074d147..0000000 --- a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base -{ - 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/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Form1.cs b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Form1.cs deleted file mode 100644 index 026ec68..0000000 --- a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormBoat.Designer.cs b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormBoat.Designer.cs new file mode 100644 index 0000000..5210f43 --- /dev/null +++ b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormBoat.Designer.cs @@ -0,0 +1,183 @@ +namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base +{ + partial class FormBoat + { + /// + /// 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.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.toolStripStatusLabelSpeed = new System.Windows.Forms.ToolStripStatusLabel(); + this.toolStripStatusLabelWeight = new System.Windows.Forms.ToolStripStatusLabel(); + this.toolStripStatusLabelBodyColor = new System.Windows.Forms.ToolStripStatusLabel(); + this.pictureBoxBoat = new System.Windows.Forms.PictureBox(); + this.buttonCreate = new System.Windows.Forms.Button(); + this.buttonRight = new System.Windows.Forms.Button(); + this.buttonLeft = new System.Windows.Forms.Button(); + this.buttonUp = new System.Windows.Forms.Button(); + this.buttonDown = new System.Windows.Forms.Button(); + this.statusStrip1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxBoat)).BeginInit(); + this.SuspendLayout(); + // + // statusStrip1 + // + this.statusStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); + this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripStatusLabelSpeed, + this.toolStripStatusLabelWeight, + this.toolStripStatusLabelBodyColor}); + this.statusStrip1.Location = new System.Drawing.Point(0, 427); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Size = new System.Drawing.Size(882, 26); + this.statusStrip1.TabIndex = 0; + this.statusStrip1.Text = "statusStrip1"; + // + // toolStripStatusLabelSpeed + // + this.toolStripStatusLabelSpeed.Name = "toolStripStatusLabelSpeed"; + this.toolStripStatusLabelSpeed.Size = new System.Drawing.Size(76, 20); + this.toolStripStatusLabelSpeed.Text = "Скорость:"; + // + // toolStripStatusLabelWeight + // + this.toolStripStatusLabelWeight.Name = "toolStripStatusLabelWeight"; + this.toolStripStatusLabelWeight.Size = new System.Drawing.Size(36, 20); + this.toolStripStatusLabelWeight.Text = "Вес:"; + // + // toolStripStatusLabelBodyColor + // + this.toolStripStatusLabelBodyColor.Name = "toolStripStatusLabelBodyColor"; + this.toolStripStatusLabelBodyColor.Size = new System.Drawing.Size(45, 20); + this.toolStripStatusLabelBodyColor.Text = "Цвет:"; + // + // pictureBoxBoat + // + this.pictureBoxBoat.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.pictureBoxBoat.Dock = System.Windows.Forms.DockStyle.Fill; + this.pictureBoxBoat.Location = new System.Drawing.Point(0, 0); + this.pictureBoxBoat.Name = "pictureBoxBoat"; + this.pictureBoxBoat.Size = new System.Drawing.Size(882, 427); + this.pictureBoxBoat.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.pictureBoxBoat.TabIndex = 1; + this.pictureBoxBoat.TabStop = false; + this.pictureBoxBoat.SizeChanged += new System.EventHandler(this.PictureBoxBoat_Resize); + this.pictureBoxBoat.Resize += new System.EventHandler(this.PictureBoxBoat_Resize); + // + // buttonCreate + // + this.buttonCreate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonCreate.Location = new System.Drawing.Point(12, 385); + this.buttonCreate.Name = "buttonCreate"; + this.buttonCreate.Size = new System.Drawing.Size(94, 29); + this.buttonCreate.TabIndex = 2; + this.buttonCreate.Text = "Создать"; + this.buttonCreate.UseVisualStyleBackColor = true; + this.buttonCreate.Click += new System.EventHandler(this.ButtonCreate_Click); + // + // buttonRight + // + this.buttonRight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonRight.BackgroundImage = global::PIbd_22_Kalyshev_Y_V_MotorBoat_Base.Properties.Resources.right; + this.buttonRight.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonRight.Location = new System.Drawing.Point(820, 374); + this.buttonRight.Name = "buttonRight"; + this.buttonRight.Size = new System.Drawing.Size(40, 40); + this.buttonRight.TabIndex = 3; + this.buttonRight.UseVisualStyleBackColor = true; + this.buttonRight.Click += new System.EventHandler(this.ButtonMove_Click); + // + // buttonLeft + // + this.buttonLeft.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonLeft.BackgroundImage = global::PIbd_22_Kalyshev_Y_V_MotorBoat_Base.Properties.Resources.left; + this.buttonLeft.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonLeft.Location = new System.Drawing.Point(728, 374); + this.buttonLeft.Name = "buttonLeft"; + this.buttonLeft.Size = new System.Drawing.Size(40, 40); + this.buttonLeft.TabIndex = 4; + this.buttonLeft.UseVisualStyleBackColor = true; + this.buttonLeft.Click += new System.EventHandler(this.ButtonMove_Click); + // + // buttonUp + // + this.buttonUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonUp.BackgroundImage = global::PIbd_22_Kalyshev_Y_V_MotorBoat_Base.Properties.Resources.up; + this.buttonUp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonUp.Location = new System.Drawing.Point(774, 328); + this.buttonUp.Name = "buttonUp"; + this.buttonUp.Size = new System.Drawing.Size(40, 40); + this.buttonUp.TabIndex = 5; + this.buttonUp.UseVisualStyleBackColor = true; + this.buttonUp.Click += new System.EventHandler(this.ButtonMove_Click); + // + // buttonDown + // + this.buttonDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonDown.BackgroundImage = global::PIbd_22_Kalyshev_Y_V_MotorBoat_Base.Properties.Resources.down; + this.buttonDown.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonDown.Location = new System.Drawing.Point(774, 374); + this.buttonDown.Name = "buttonDown"; + this.buttonDown.Size = new System.Drawing.Size(40, 40); + this.buttonDown.TabIndex = 6; + this.buttonDown.UseVisualStyleBackColor = true; + this.buttonDown.Click += new System.EventHandler(this.ButtonMove_Click); + // + // FormBoat + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(882, 453); + this.Controls.Add(this.buttonDown); + this.Controls.Add(this.buttonUp); + this.Controls.Add(this.buttonLeft); + this.Controls.Add(this.buttonRight); + this.Controls.Add(this.buttonCreate); + this.Controls.Add(this.pictureBoxBoat); + this.Controls.Add(this.statusStrip1); + this.Name = "FormBoat"; + this.Text = "Лодка"; + this.statusStrip1.ResumeLayout(false); + this.statusStrip1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxBoat)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private StatusStrip statusStrip1; + private ToolStripStatusLabel toolStripStatusLabelSpeed; + private ToolStripStatusLabel toolStripStatusLabelWeight; + private ToolStripStatusLabel toolStripStatusLabelBodyColor; + private PictureBox pictureBoxBoat; + private Button buttonCreate; + private Button buttonRight; + private Button buttonLeft; + private Button buttonUp; + private Button buttonDown; + } +} \ No newline at end of file diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormBoat.cs b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormBoat.cs new file mode 100644 index 0000000..496674d --- /dev/null +++ b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormBoat.cs @@ -0,0 +1,74 @@ +namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base +{ + public partial class FormBoat : Form + { + private DrawningBoat _boat; + + public FormBoat() + { + InitializeComponent(); + } + /// + /// + /// + private void Draw() + { + Bitmap bmp = new(pictureBoxBoat.Width, pictureBoxBoat.Height); + Graphics gr = Graphics.FromImage(bmp); + _boat?.DrawTransport(gr); + pictureBoxBoat.Image = bmp; + } + /// + /// "" + /// + /// + /// + private void ButtonCreate_Click(object sender, EventArgs e) + { + Random rnd = new(); + _boat = new DrawningBoat(); + _boat.Init(rnd.Next(5, 30), rnd.Next(30, 100), Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256))); + _boat.SetPosition(rnd.Next(10, 100), rnd.Next(10, 100), pictureBoxBoat.Width, pictureBoxBoat.Height); + toolStripStatusLabelSpeed.Text = $": {_boat.Boat.Speed}"; + toolStripStatusLabelWeight.Text = $": {_boat.Boat.Weight}"; + toolStripStatusLabelBodyColor.Text = $": {_boat.Boat.BodyColor.Name}"; + Draw(); + } + /// + /// + /// + /// + /// + private void ButtonMove_Click(object sender, EventArgs e) + { + // + string name = ((Button)sender)?.Name ?? string.Empty; + switch (name) + { + case "buttonUp": + _boat?.MoveTransport(Direction.Up); + break; + case "buttonDown": + _boat?.MoveTransport(Direction.Down); + break; + case "buttonLeft": + _boat?.MoveTransport(Direction.Left); + break; + case "buttonRight": + _boat?.MoveTransport(Direction.Right); + break; + } + Draw(); + } + /// + /// + /// + /// + /// + private void PictureBoxBoat_Resize(object sender, EventArgs e) + { + _boat?.ChangeBorders(pictureBoxBoat.Width, pictureBoxBoat.Height); + Draw(); + } + } +} \ No newline at end of file diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormBoat.resx b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormBoat.resx new file mode 100644 index 0000000..5cb320f --- /dev/null +++ b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/FormBoat.resx @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 17, 17 + + \ No newline at end of file diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Program.cs b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Program.cs index 04b7db4..b7776a0 100644 --- a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Program.cs +++ b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Program.cs @@ -11,7 +11,7 @@ namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base // 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 FormBoat()); } } } \ No newline at end of file diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Properties/Resources.Designer.cs b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Properties/Resources.Designer.cs new file mode 100644 index 0000000..321842f --- /dev/null +++ b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace PIbd_22_Kalyshev_Y_V_MotorBoat_Base.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("PIbd_22_Kalyshev_Y_V_MotorBoat_Base.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 down { + get { + object obj = ResourceManager.GetObject("down", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap left { + get { + object obj = ResourceManager.GetObject("left", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap right { + get { + object obj = ResourceManager.GetObject("right", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap up { + get { + object obj = ResourceManager.GetObject("up", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Form1.resx b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Properties/Resources.resx similarity index 83% rename from PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Form1.resx rename to PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Properties/Resources.resx index 1af7de1..a9cc51f 100644 --- a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Form1.resx +++ b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Properties/Resources.resx @@ -117,4 +117,17 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\right1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\down1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\left1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\up1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Resources/down1.png b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Resources/down1.png new file mode 100644 index 0000000000000000000000000000000000000000..8f790439ef8773f21b29dd0a746fb0b2154bb102 GIT binary patch literal 8025 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 literal 0 HcmV?d00001 diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Resources/right1.png b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Resources/right1.png new file mode 100644 index 0000000000000000000000000000000000000000..8cca371d98f6a7d4a34fc02a10713c60db45bad9 GIT binary patch literal 466 zcmV;@0WJQCP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA0cS}>K~z{r?bN?Z z!$1@V@b_vJBtNQXQ+o*r?oR#%ZtiY^yN-gh;NmV8T)K)5;=kbJSO+J;DyWoHEe>t` zfz~`?04)w!fz`nS|J=-5sX zF?Z-#?lSjB3gdnO+#LJew|mG))m1sAnhSxrE%Xl(^(&>y+Ib+mP?4R zpeux7e#~*Z>R8Ua>$sgx)VWCJ>2U*-v%!-lO+8>}@nfmi|BeW5c`v(!AJt~F`H*C& zO6roE89gH-i0GB~bbv(LIg@1z!XpA*b+H>JpLm52#+Vrzv!#n&3BSLc@?H6; z2DSGjNb?pa|H2JG+%%(cPnpZ69fZ&GsLO?FAhGE#! z*?&rok}COB_SErI(O={!-y6vY-}Bc3FPJr@5JCtcgvbJbPwSOmejhG=3IG5A07*qo IM6N<$f*7dJ4FCWD literal 0 HcmV?d00001 diff --git a/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Resources/up1.png b/PIbd-22_Kalyshev_Y_V_MotorBoat_Base/Resources/up1.png new file mode 100644 index 0000000000000000000000000000000000000000..447ee1e642442123714748736469ac71012364db GIT binary patch literal 7969 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