From 31d62516e162464eb213cb780c5fc63b57dfca3a Mon Sep 17 00:00:00 2001 From: bobrishe03 Date: Mon, 21 Nov 2022 23:16:07 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20=D0=BB?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=BD=D0=B0?= =?UTF-8?q?=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DumpTruck/DumpTruck/Direction.cs | 16 ++ DumpTruck/DumpTruck/DrawningTruck.cs | 120 ++++++++++++ DumpTruck/DumpTruck/DumpTruck.csproj | 25 ++- DumpTruck/DumpTruck/EntityTruck.cs | 27 +++ DumpTruck/DumpTruck/Form1.Designer.cs | 40 ---- DumpTruck/DumpTruck/Form1.cs | 20 -- DumpTruck/DumpTruck/FormTruck.Designer.cs | 173 +++++++++++++++++ DumpTruck/DumpTruck/FormTruck.cs | 66 +++++++ DumpTruck/DumpTruck/FormTruck.resx | 182 ++++++++++++++++++ DumpTruck/DumpTruck/Program.cs | 2 +- .../Properties/Resources.Designer.cs | 108 +++++++---- DumpTruck/DumpTruck/Properties/Resources.resx | 26 ++- DumpTruck/DumpTruck/Resources/down.jpg | Bin 0 -> 3703 bytes DumpTruck/DumpTruck/Resources/left.jpg | Bin 0 -> 3146 bytes DumpTruck/DumpTruck/Resources/right.jpg | Bin 0 -> 3706 bytes DumpTruck/DumpTruck/Resources/up.jpg | Bin 0 -> 3188 bytes 16 files changed, 698 insertions(+), 107 deletions(-) create mode 100644 DumpTruck/DumpTruck/Direction.cs create mode 100644 DumpTruck/DumpTruck/DrawningTruck.cs create mode 100644 DumpTruck/DumpTruck/EntityTruck.cs delete mode 100644 DumpTruck/DumpTruck/Form1.Designer.cs delete mode 100644 DumpTruck/DumpTruck/Form1.cs create mode 100644 DumpTruck/DumpTruck/FormTruck.Designer.cs create mode 100644 DumpTruck/DumpTruck/FormTruck.cs create mode 100644 DumpTruck/DumpTruck/FormTruck.resx create mode 100644 DumpTruck/DumpTruck/Resources/down.jpg create mode 100644 DumpTruck/DumpTruck/Resources/left.jpg create mode 100644 DumpTruck/DumpTruck/Resources/right.jpg create mode 100644 DumpTruck/DumpTruck/Resources/up.jpg diff --git a/DumpTruck/DumpTruck/Direction.cs b/DumpTruck/DumpTruck/Direction.cs new file mode 100644 index 0000000..0dc8cb5 --- /dev/null +++ b/DumpTruck/DumpTruck/Direction.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DumpTruck +{ + internal enum Direction + { + Up = 1, + Down = 2, + Left = 3, + Right = 4 + } +} diff --git a/DumpTruck/DumpTruck/DrawningTruck.cs b/DumpTruck/DumpTruck/DrawningTruck.cs new file mode 100644 index 0000000..4a59de3 --- /dev/null +++ b/DumpTruck/DumpTruck/DrawningTruck.cs @@ -0,0 +1,120 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DumpTruck +{ + internal class drawningTruck + { + public EntityTruck Truck { get; private set; } + private float _startPosX; + private float _startPosY; + private int? _pictureWidth = null; + private int? _pictureHeight = null; + protected readonly int _truckWidth = 100; + protected readonly int _truckHeight = 55; + public void Init(int speed, float weight, Color bodyColor) + { + Truck = new EntityTruck(); + Truck.Init(speed, weight, bodyColor); + } + public void SetPosition(int x, int y, int width, int height) + { + _startPosX = x; + _startPosY = y; + _pictureWidth = width; + _pictureHeight = height; + } + public void MoveTransport(Direction direction) + { + if (!_pictureHeight.HasValue || !_pictureWidth.HasValue) + { + return; + } + switch (direction) + { + case Direction.Left: + if (_startPosX - Truck.Step > 0) + { + _startPosX -= Truck.Step; + } + break; + case Direction.Right: + if (_startPosX + _truckWidth + Truck.Step < _pictureWidth) + { + _startPosX += Truck.Step; + } + + break; + case Direction.Up: + if (_startPosY - Truck.Step > 0) + { + _startPosY -= Truck.Step; + } + break; + case Direction.Down: + if (_startPosY + _truckHeight + Truck.Step < _pictureHeight) + { + _startPosY += Truck.Step; + } + break; + + } + } + public void DrawTransport(Graphics g) + { + if (_startPosX < 0 || _startPosY < 0 || !_pictureHeight.HasValue || !_pictureWidth.HasValue) + { + return; + } + + + Brush br = new SolidBrush(Truck?.BodyColor ?? Color.Black); + g.FillRectangle(br, _startPosX + 80, _startPosY, 20, 30); + + Brush brBrown = new SolidBrush(Color.FromArgb(200, 150, 40)); + g.FillRectangle(brBrown, _startPosX, _startPosY + 30, 100, 5); + + Brush brBlack = new SolidBrush(Color.Black); + g.FillEllipse(brBlack, _startPosX, _startPosY + 35, 20, 20); + g.FillEllipse(brBlack, _startPosX + 22, _startPosY + 35, 20, 20); + g.FillEllipse(brBlack, _startPosX + 80, _startPosY + 35, 20, 20); + + Brush brWhite = new SolidBrush(Color.White); + g.FillEllipse(brWhite, _startPosX + 5, _startPosY + 40, 10, 10); + g.FillEllipse(brWhite, _startPosX + 27, _startPosY + 40, 10, 10); + g.FillEllipse(brWhite, _startPosX + 85, _startPosY + 40, 10, 10); + + Pen pen = new Pen(Color.Black); + + g.DrawRectangle(pen, _startPosX + 80, _startPosY, 20, 30); + g.DrawRectangle(pen, _startPosX, _startPosY + 30, 100, 5); + g.DrawEllipse(pen, _startPosX, _startPosY + 35, 20, 20); + g.DrawEllipse(pen, _startPosX + 22, _startPosY + 35, 20, 20); + g.DrawEllipse(pen, _startPosX + 80, _startPosY + 35, 20, 20); + + } + public void ChangeBorders(int width, int height) + { + _pictureWidth = width; + _pictureHeight = height; + if (_pictureWidth <= _truckWidth || _pictureHeight <= _truckHeight) + { + _pictureHeight = null; + _pictureWidth = null; + return; + } + if (_startPosX + _truckWidth >= _pictureWidth) + { + _startPosX = _pictureWidth.Value - _truckWidth; + } + if (_startPosY + _truckHeight >= _pictureHeight) + { + _startPosY = _pictureHeight.Value - _truckHeight; + } + } + } +} \ No newline at end of file diff --git a/DumpTruck/DumpTruck/DumpTruck.csproj b/DumpTruck/DumpTruck/DumpTruck.csproj index db56233..f8d2019 100644 --- a/DumpTruck/DumpTruck/DumpTruck.csproj +++ b/DumpTruck/DumpTruck/DumpTruck.csproj @@ -46,14 +46,20 @@ - + + + + Form - - Form1.cs + + FormTruck.cs + + FormTruck.cs + ResXFileCodeGenerator Resources.Designer.cs @@ -62,6 +68,7 @@ True Resources.resx + True SettingsSingleFileGenerator @@ -76,5 +83,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/DumpTruck/DumpTruck/EntityTruck.cs b/DumpTruck/DumpTruck/EntityTruck.cs new file mode 100644 index 0000000..27d1717 --- /dev/null +++ b/DumpTruck/DumpTruck/EntityTruck.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DumpTruck +{ + internal class EntityTruck + { + 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) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + } + } +} diff --git a/DumpTruck/DumpTruck/Form1.Designer.cs b/DumpTruck/DumpTruck/Form1.Designer.cs deleted file mode 100644 index a9e9511..0000000 --- a/DumpTruck/DumpTruck/Form1.Designer.cs +++ /dev/null @@ -1,40 +0,0 @@ -namespace DumpTruck -{ - partial class Form1 - { - /// - /// Обязательная переменная конструктора. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Освободить все используемые ресурсы. - /// - /// истинно, если управляемый ресурс должен быть удален; иначе ложно. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Код, автоматически созданный конструктором форм Windows - - /// - /// Требуемый метод для поддержки конструктора — не изменяйте - /// содержимое этого метода с помощью редактора кода. - /// - 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 - } -} - diff --git a/DumpTruck/DumpTruck/Form1.cs b/DumpTruck/DumpTruck/Form1.cs deleted file mode 100644 index c1f1376..0000000 --- a/DumpTruck/DumpTruck/Form1.cs +++ /dev/null @@ -1,20 +0,0 @@ -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 DumpTruck -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} diff --git a/DumpTruck/DumpTruck/FormTruck.Designer.cs b/DumpTruck/DumpTruck/FormTruck.Designer.cs new file mode 100644 index 0000000..d86fd64 --- /dev/null +++ b/DumpTruck/DumpTruck/FormTruck.Designer.cs @@ -0,0 +1,173 @@ +namespace DumpTruck +{ + partial class FormTruck + { + /// + /// Обязательная переменная конструктора. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Освободить все используемые ресурсы. + /// + /// истинно, если управляемый ресурс должен быть удален; иначе ложно. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Код, автоматически созданный конструктором форм Windows + + /// + /// Требуемый метод для поддержки конструктора — не изменяйте + /// содержимое этого метода с помощью редактора кода. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormTruck)); + this.buttonCreate = new System.Windows.Forms.Button(); + this.pictureBoxTruck = new System.Windows.Forms.PictureBox(); + this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.toolStripStatusLabelSpeed = new System.Windows.Forms.ToolStripStatusLabel(); + this.toolStripStatusLabelWeight = new System.Windows.Forms.ToolStripStatusLabel(); + this.toolStripStatusLabelColor = new System.Windows.Forms.ToolStripStatusLabel(); + this.buttonUp = new System.Windows.Forms.Button(); + this.buttonDown = new System.Windows.Forms.Button(); + this.buttonLeft = new System.Windows.Forms.Button(); + this.buttonRight = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxTruck)).BeginInit(); + this.statusStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // buttonCreate + // + this.buttonCreate.Location = new System.Drawing.Point(12, 282); + this.buttonCreate.Name = "buttonCreate"; + this.buttonCreate.Size = new System.Drawing.Size(75, 23); + this.buttonCreate.TabIndex = 0; + this.buttonCreate.Text = "button1"; + this.buttonCreate.UseVisualStyleBackColor = true; + this.buttonCreate.Click += new System.EventHandler(this.buttonCreate_Click); + // + // pictureBoxTruck + // + this.pictureBoxTruck.Dock = System.Windows.Forms.DockStyle.Fill; + this.pictureBoxTruck.Location = new System.Drawing.Point(0, 0); + this.pictureBoxTruck.Name = "pictureBoxTruck"; + this.pictureBoxTruck.Size = new System.Drawing.Size(694, 318); + this.pictureBoxTruck.TabIndex = 1; + this.pictureBoxTruck.TabStop = false; + this.pictureBoxTruck.Resize += new System.EventHandler(this.pictureBoxTruck_Resize); + // + // statusStrip1 + // + this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripStatusLabelSpeed, + this.toolStripStatusLabelWeight, + this.toolStripStatusLabelColor}); + this.statusStrip1.Location = new System.Drawing.Point(0, 318); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Size = new System.Drawing.Size(694, 22); + this.statusStrip1.TabIndex = 2; + this.statusStrip1.Text = "statusStrip1"; + // + // toolStripStatusLabelSpeed + // + this.toolStripStatusLabelSpeed.Name = "toolStripStatusLabelSpeed"; + this.toolStripStatusLabelSpeed.Size = new System.Drawing.Size(118, 17); + this.toolStripStatusLabelSpeed.Text = "toolStripStatusLabel1"; + // + // toolStripStatusLabelWeight + // + this.toolStripStatusLabelWeight.Name = "toolStripStatusLabelWeight"; + this.toolStripStatusLabelWeight.Size = new System.Drawing.Size(118, 17); + this.toolStripStatusLabelWeight.Text = "toolStripStatusLabel2"; + // + // toolStripStatusLabelColor + // + this.toolStripStatusLabelColor.Name = "toolStripStatusLabelColor"; + this.toolStripStatusLabelColor.Size = new System.Drawing.Size(118, 17); + this.toolStripStatusLabelColor.Text = "toolStripStatusLabel3"; + // + // buttonUp + // + this.buttonUp.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("buttonUp.BackgroundImage"))); + this.buttonUp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.buttonUp.Location = new System.Drawing.Point(613, 246); + this.buttonUp.Name = "buttonUp"; + this.buttonUp.Size = new System.Drawing.Size(30, 30); + this.buttonUp.TabIndex = 3; + this.buttonUp.UseVisualStyleBackColor = true; + this.buttonUp.Click += new System.EventHandler(this.buttonMove_Click); + // + // buttonDown + // + this.buttonDown.BackgroundImage = global::DumpTruck.Properties.Resources.down; + this.buttonDown.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.buttonDown.Location = new System.Drawing.Point(613, 282); + this.buttonDown.Name = "buttonDown"; + this.buttonDown.Size = new System.Drawing.Size(30, 30); + this.buttonDown.TabIndex = 4; + this.buttonDown.UseVisualStyleBackColor = true; + this.buttonDown.Click += new System.EventHandler(this.buttonMove_Click); + // + // buttonLeft + // + this.buttonLeft.BackgroundImage = global::DumpTruck.Properties.Resources.left; + this.buttonLeft.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.buttonLeft.Location = new System.Drawing.Point(577, 282); + this.buttonLeft.Name = "buttonLeft"; + this.buttonLeft.Size = new System.Drawing.Size(30, 30); + this.buttonLeft.TabIndex = 5; + this.buttonLeft.UseVisualStyleBackColor = true; + this.buttonLeft.Click += new System.EventHandler(this.buttonMove_Click); + // + // buttonRight + // + this.buttonRight.BackgroundImage = global::DumpTruck.Properties.Resources.right; + this.buttonRight.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.buttonRight.Location = new System.Drawing.Point(649, 282); + this.buttonRight.Name = "buttonRight"; + this.buttonRight.Size = new System.Drawing.Size(30, 30); + this.buttonRight.TabIndex = 6; + this.buttonRight.UseVisualStyleBackColor = true; + this.buttonRight.Click += new System.EventHandler(this.buttonMove_Click); + // + // FormTruck + // + this.ClientSize = new System.Drawing.Size(694, 340); + this.Controls.Add(this.buttonRight); + this.Controls.Add(this.buttonLeft); + this.Controls.Add(this.buttonDown); + this.Controls.Add(this.buttonUp); + this.Controls.Add(this.buttonCreate); + this.Controls.Add(this.pictureBoxTruck); + this.Controls.Add(this.statusStrip1); + this.Name = "FormTruck"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxTruck)).EndInit(); + this.statusStrip1.ResumeLayout(false); + this.statusStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button buttonCreate; + private System.Windows.Forms.PictureBox pictureBoxTruck; + private System.Windows.Forms.StatusStrip statusStrip1; + private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabelSpeed; + private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabelWeight; + private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabelColor; + private System.Windows.Forms.Button buttonUp; + private System.Windows.Forms.Button buttonDown; + private System.Windows.Forms.Button buttonLeft; + private System.Windows.Forms.Button buttonRight; + } +} + diff --git a/DumpTruck/DumpTruck/FormTruck.cs b/DumpTruck/DumpTruck/FormTruck.cs new file mode 100644 index 0000000..34bbe9a --- /dev/null +++ b/DumpTruck/DumpTruck/FormTruck.cs @@ -0,0 +1,66 @@ +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 DumpTruck +{ + public partial class FormTruck : Form + { + private drawningTruck _truck; + public FormTruck() + { + InitializeComponent(); + } + private void Draw() + { + Bitmap bmp = new Bitmap(pictureBoxTruck.Width, pictureBoxTruck.Height); + Graphics gr = Graphics.FromImage(bmp); + _truck?.DrawTransport(gr); + pictureBoxTruck.Image = bmp; + } + private void buttonCreate_Click(object sender, EventArgs e) + { + Random rnd = new Random(); + _truck = new drawningTruck(); + _truck.Init(rnd.Next(100, 300), rnd.Next(1000, 2000), Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256))); + _truck.SetPosition(rnd.Next(10, 100), rnd.Next(10, 100), pictureBoxTruck.Width, pictureBoxTruck.Height); + toolStripStatusLabelSpeed.Text = $"Скорость: {_truck.Truck.Speed}"; + toolStripStatusLabelWeight.Text = $"Вес: {_truck.Truck.Weight}"; + toolStripStatusLabelColor.Text = $"Цвет: {_truck.Truck.BodyColor}"; + Draw(); + } + private void buttonMove_Click(object sender, EventArgs e) + { + string name = ((Button)sender)?.Name ?? string.Empty; + switch (name) + { + case "buttonUp": + _truck?.MoveTransport(Direction.Up); + break; + case "buttonDown": + _truck?.MoveTransport(Direction.Down); + break; + case "buttonRight": + _truck?.MoveTransport(Direction.Right); + break; + case "buttonLeft": + _truck?.MoveTransport(Direction.Left); + break; + } + Draw(); + } + private void pictureBoxTruck_Resize(object sender, EventArgs e) + { + _truck?.ChangeBorders(pictureBoxTruck.Width, pictureBoxTruck.Height); + Draw(); + } + + + } +} \ No newline at end of file diff --git a/DumpTruck/DumpTruck/FormTruck.resx b/DumpTruck/DumpTruck/FormTruck.resx new file mode 100644 index 0000000..7701323 --- /dev/null +++ b/DumpTruck/DumpTruck/FormTruck.resx @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + /9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBD + AAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0M + DgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM + DAwMDAwMDAwMDAwMDAz/wAARCACWAJYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQF + BgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAk + M2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG + h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx + 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA + AQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5 + OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmq + srO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9 + /KKKKACiiigAooooAKKK/EH/AIORf+DkX/hQH9vfs9fs9a9/xcD95p/jLxlp83/Iq9Vk0+xkX/mIdVln + U/6JyiH7Tua0AD/g5F/4ORf+FAf29+z1+z1r3/FwP3mn+MvGWnzf8ir1WTT7GRf+Yh1WWdT/AKJyiH7T + ua0/nR8J+LNV8BeKtN13QtS1DRdb0W7iv9P1CwuHtrqwuInDxTRSoQ8ciOqsrqQVIBBBFZ9FAH9V3/Bv + N/wcM6V/wUu8K2fwr+Kl5p+i/H7RbQmKUKlta+PLeJCz3Vsi4SO8RFLz2yAAgNNCBGJYrb9Tq/gT8J+L + NV8BeKtN13QtS1DRdb0W7iv9P1CwuHtrqwuInDxTRSoQ8ciOqsrqQVIBBBFf1Pf8G83/AAcM6V/wUu8K + 2fwr+Kl5p+i/H7RbQmKUKlta+PLeJCz3Vsi4SO8RFLz2yAAgNNCBGJYrYA/U6iiigAooooAKKKKACiii + gAooooAKKKKACiivxB/4ORf+DkX/AIUB/b37PX7PWvf8XA/eaf4y8ZafN/yKvVZNPsZF/wCYh1WWdT/o + nKIftO5rQAP+DkX/AIORf+FAf29+z1+z1r3/ABcD95p/jLxlp83/ACKvVZNPsZF/5iHVZZ1P+icoh+07 + mtP5waKKACiiigArQ8J+LNV8BeKtN13QtS1DRdb0W7iv9P1CwuHtrqwuInDxTRSoQ8ciOqsrqQVIBBBF + Z9FAH9V3/BvN/wAHDOlf8FLvCtn8K/ipeafovx+0W0JilCpbWvjy3iQs91bIuEjvERS89sgAIDTQgRiW + K2/U6v4E/CfizVfAXirTdd0LUtQ0XW9Fu4r/AE/ULC4e2urC4icPFNFKhDxyI6qyupBUgEEEV/U9/wAG + 83/BwzpX/BS7wrZ/Cv4qXmn6L8ftFtCYpQqW1r48t4kLPdWyLhI7xEUvPbIACA00IEYlitgD9TqKKKAC + iiigAooooAKKKKACiivxB/4ORf8Ag5F/4UB/b37PX7PWvf8AFwP3mn+MvGWnzf8AIq9Vk0+xkX/mIdVl + nU/6JyiH7Tua0AD/AIORf+DkX/hQH9vfs9fs9a9/xcD95p/jLxlp83/Iq9Vk0+xkX/mIdVlnU/6JyiH7 + Tua0/nBoooAKKKKACiiigAooooAK0PCfizVfAXirTdd0LUtQ0XW9Fu4r/T9QsLh7a6sLiJw8U0UqEPHI + jqrK6kFSAQQRWfRQB/Vd/wAG83/BwzpX/BS7wrZ/Cv4qXmn6L8ftFtCYpQqW1r48t4kLPdWyLhI7xEUv + PbIACA00IEYlitv1Or+CP4T/ABS174HfFPwz428LX39l+JvB+q2ut6ReeTHP9kvLaZJoJfLkVo32yIrb + XVlOMEEZFf12/wDBDj/guP4N/wCCvXwaa1uk0/wr8aPCtor+KPC6SERzplU/tKw3kvJZu7KGUlpLeR1j + kLBoZpwD7vooooAKKKKACiivxB/4ORf+DkX/AIUB/b37PX7PWvf8XA/eaf4y8ZafN/yKvVZNPsZF/wCY + h1WWdT/onKIftO5rQAP+DkX/AIORf+FAf29+z1+z1r3/ABcD95p/jLxlp83/ACKvVZNPsZF/5iHVZZ1P + +icoh+07mtP5waKKACiiigAooooAKKKKACiiigAooooAK7D4A/H7xl+y18ZfD3xC+HviHUPCvjLwrdi8 + 0zU7NgJLd8FWBVgUkjdGZHjcNHJG7o6sjMp4+igD+w3/AIIcf8Fx/Bv/AAV6+DTWt0mn+FfjR4VtFfxR + 4XSQiOdMqn9pWG8l5LN3ZQyktJbyOschYNDNP931/Bn8Afj94y/Za+Mvh74hfD3xDqHhXxl4VuxeaZqd + mwElu+CrAqwKSRujMjxuGjkjd0dWRmU/1u/8EOP+C4/g3/gr18GmtbpNP8K/GjwraK/ijwukhEc6ZVP7 + SsN5LyWbuyhlJaS3kdY5CwaGacA+76KKKAPxB/4ORf8Ag5F/4UB/b37PX7PWvf8AFwP3mn+MvGWnzf8A + Iq9Vk0+xkX/mIdVlnU/6JyiH7Tua0/nBr7//AOIXH9uz/ohv/l5+H/8A5Oo/4hcf27P+iG/+Xn4f/wDk + 6gD4Aor7/wD+IXH9uz/ohv8A5efh/wD+TqP+IXH9uz/ohv8A5efh/wD+TqAPgCivYP21f2Cvix/wTt+K + en+CfjF4U/4Q/wATappUet2tn/adnqHm2ck00KS+ZayyxjMlvMu0sGGzJGCCfH6ACiiigAooooAKKKKA + CiiigAor6g/Yq/4IzftKf8FEvhZqHjb4O/Df/hMPDOl6rJol1ef8JBpen+VeRwwzPF5d1cxSHEdxC24K + VO/AOQQPX/8AiFx/bs/6Ib/5efh//wCTqAPgCuw+APx+8ZfstfGXw98Qvh74h1Dwr4y8K3YvNM1OzYCS + 3fBVgVYFJI3RmR43DRyRu6OrIzKfs/8A4hcf27P+iG/+Xn4f/wDk6j/iFx/bs/6Ib/5efh//AOTqAP6D + v+CHH/Bcfwb/AMFevg01rdJp/hX40eFbRX8UeF0kIjnTKp/aVhvJeSzd2UMpLSW8jrHIWDQzTlfz4/8A + ELj+3Z/0Q3/y8/D/AP8AJ1FAH9ftFFFABRRRQB/MD/werf8AKU3wD/2SrTv/AE76xX5A1+v3/B6t/wAp + TfAP/ZKtO/8ATvrFfkDQAUUUUAFFFFABRRRQAUUUUAf0/f8ABlT/AMosvH3/AGVXUf8A00aPX6/V+QP/ + AAZU/wDKLLx9/wBlV1H/ANNGj1+v1ABRRRQAUUUUAFFFFABRRRQB/MD/AMHq3/KU3wD/ANkq07/076xX + 5A1+v3/B6t/ylN8A/wDZKtO/9O+sV+QNABRRRQAUUUUAFFFFABRRRQB/T9/wZU/8osvH3/ZVdR/9NGj1 + +v1fkD/wZU/8osvH3/ZVdR/9NGj1+v1ABRRRQAUUUUAFFFFABRRRQB/MD/werf8AKU3wD/2SrTv/AE76 + xX5A1+v3/B6t/wApTfAP/ZKtO/8ATvrFfkDQAUUUUAFFFFABRRRQAUUUUAf0/f8ABlT/AMosvH3/AGVX + Uf8A00aPX6/V+QP/AAZU/wDKLLx9/wBlV1H/ANNGj1+v1ABRRRQAUUUUAFFFFABRRRQB/MD/AMHq3/KU + 3wD/ANkq07/076xX5A1+v3/B6t/ylN8A/wDZKtO/9O+sV+QNABRRRQAUUUUAFFFFABRRRQB/T9/wZU/8 + osvH3/ZVdR/9NGj1+v1fkD/wZU/8osvH3/ZVdR/9NGj1+v1ABRRRQAUUUUAFFFFABRRRQB/MD/werf8A + KU3wD/2SrTv/AE76xX5A0UUAFFFFABRRRQAUUUUAFFFFAH9P3/BlT/yiy8ff9lV1H/00aPX6/UUUAFFF + FABRRRQB/9k= + + + \ No newline at end of file diff --git a/DumpTruck/DumpTruck/Program.cs b/DumpTruck/DumpTruck/Program.cs index a379ddb..b0536fd 100644 --- a/DumpTruck/DumpTruck/Program.cs +++ b/DumpTruck/DumpTruck/Program.cs @@ -16,7 +16,7 @@ namespace DumpTruck { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); + Application.Run(new FormTruck()); } } } diff --git a/DumpTruck/DumpTruck/Properties/Resources.Designer.cs b/DumpTruck/DumpTruck/Properties/Resources.Designer.cs index 800c30e..aac7e60 100644 --- a/DumpTruck/DumpTruck/Properties/Resources.Designer.cs +++ b/DumpTruck/DumpTruck/Properties/Resources.Designer.cs @@ -1,71 +1,103 @@ //------------------------------------------------------------------------------ // -// Этот код создан программным средством. -// Версия среды выполнения: 4.0.30319.42000 +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 // -// Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если -// код создан повторно. +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. // //------------------------------------------------------------------------------ -namespace DumpTruck.Properties -{ - - +namespace DumpTruck.Properties { + using System; + + /// - /// Класс ресурсов со строгим типом для поиска локализованных строк и пр. + /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д. /// - // Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder - // класс с помощью таких средств, как ResGen или Visual Studio. - // Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen - // с параметром /str или заново постройте свой VS-проект. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + // Этот класс создан автоматически классом 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 - { - + 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() - { + internal Resources() { } - + /// - /// Возврат кэшированного экземпляра ResourceManager, используемого этим классом. + /// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DumpTruck.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - + /// - /// Переопределяет свойство CurrentUICulture текущего потока для всех - /// подстановки ресурсов с помощью этого класса ресурсов со строгим типом. + /// Перезаписывает свойство CurrentUICulture текущего потока для всех + /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { + internal static global::System.Globalization.CultureInfo Culture { + get { return resourceCulture; } - set - { + 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/DumpTruck/DumpTruck/Properties/Resources.resx b/DumpTruck/DumpTruck/Properties/Resources.resx index af7dbeb..5cd41d4 100644 --- a/DumpTruck/DumpTruck/Properties/Resources.resx +++ b/DumpTruck/DumpTruck/Properties/Resources.resx @@ -46,7 +46,7 @@ mimetype: application/x-microsoft.net.object.binary.base64 value : The object must be serialized with - : System.Serialization.Formatters.Binary.BinaryFormatter + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : and then encoded with base64 encoding. mimetype: application/x-microsoft.net.object.soap.base64 @@ -60,6 +60,7 @@ : and then encoded with base64 encoding. --> + @@ -68,9 +69,10 @@ - + + @@ -85,9 +87,10 @@ - + + @@ -109,9 +112,22 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\up.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\left.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\right.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\down.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/DumpTruck/DumpTruck/Resources/down.jpg b/DumpTruck/DumpTruck/Resources/down.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aabdc4a1f9659ec8f5c3abc7680984a5b2a03056 GIT binary patch literal 3703 zcmd^BX;>528a^R}C4eE6fZzhMR0JXqTR|@pm0jyYK_NiI2xYermr{Zk4Fy>Y77E3n z*cJf=6(Q`1Qo<5IK-*HJXe>)WT4j+0HH;*gxs$fHz1aS^xA$kiIo~|3m1#a%CB6lsJwRlMtwtLQ*+C$ z*4tg({GQ&vyZr;-4L=z9e)QoZfpBX2$;^*GJ$*JSUV8EJm1G%uy`tcS0oY$?{l@GK zUPP3a5^4iwRRu4MQWC0IqB3rit%}YrKh>~fZ<*MAtfsp=zqGDX-PGP+L<&DXgx523 z5Soh>)P836-w{juOU!;F_B$^D(8OX;<6((_0_3tXwgo^H`#KE)=_98A>&|EYgB*1WS6Jyz#F-Vq*#S>^w2(}aK^$s0=iO7A&M%gvW3{=O+b5p~)^jzM^G zcc01j`ubX&w{faRGy=LG^5PgP+ZcJMU5>tD!QPh%3rlR+7y-h0dXtlUeM=t#WX>mf z2r%684LnUX)ti&V!2` zPRdzaq3>kn!X0tB6Nme{I%NiUFGG&0 znP<7PUuc$WM~0XvI8MZgm_fF~@tQv`Tpk90q4XfOp0j_#}~1T1+Ni6l0H zOK>i28UgV79drZ~SYV|oWxO0pT1oTb!k}~y^TzaUC{dgw;fmpw*qG55&){`pYPKWo zTKve6VH8_E6eak{USev5-{-X`9~Ns;SOPg++Jk_!B4*&?RAtwleH0H!UM9d;dlU#p z`#56b15K?b&g6=TyE~8bm6W<|iP=}1;h?r);SOrYAx8T>`8p|;Z&(v`>(+(Fj||Dh^=BDebNqNf+dqrQY4`5sm$lV6PDX$&+V5D&Gsbq`5rRwP)T0hW>iui;yQ{en~MTVX(>aU#^ z@OoCKIV*Z?8)@PE%rFoBMmU z2kSs;?LGJKE%7{#jULlCK%~!ZB5Q;WJ8J3Eh7x9KA2>**NzJ!wZ=D_3t6AqvSf4#R zFwj9VPQ#Go66#ErY`r}KR9?i=MgEKUG1&o#8e934XVggBX`WqA3xSr#&G4L-tw;06 zO)P@82Bq!{iZZd)ZSF7{I8Q2_`bK@WT}d2xwe-mCsM4~zljI+o4Kqtv36jx3ed0Es zFwSPobpD3m;2@4mQ5xMWcJj!GtOSFfQWhC;UKkBu?F)eKt=-P4Z0i*1; zfW(Bl38+|nAax$YupHmR6j#x>1qslCG!)pxC+?U+Qg|;MRB*2y_ zR*l0i>3IV3WgUJnxjH48p@Z8?D{}T;B@Q$<}YUD+D(*m6eO z5g}KbN#P6VMUwlbwBZUgpk3~MA0)eL9+2fI0oC8xcyzgyuEy#_flp>_)ItyK zs}w_8Rp7A9N?hL6eC|tqv0JbEiHcwZG%zGeOTl*kIup5F^djc!SbHPtkXi3YICwVLkf&@ZUT(KXL!ck|)ss?1$~-<(8+@_Afy(ioX3V|#KLQf`)imIH?Tudb&EC~j8$EWk zD>kdL`}@&o-`yyS$5bzzSEeWspWts zVl#TfXy-nvq!5x$va&*SS58&5pnGWtF&VyJ%E!oIx7u2B$2XtPS2PCxJ$~6h=re`3 W>QdBy{%Xx~z5GVwu4v?uNB;s+v+WB2 literal 0 HcmV?d00001 diff --git a/DumpTruck/DumpTruck/Resources/left.jpg b/DumpTruck/DumpTruck/Resources/left.jpg new file mode 100644 index 0000000000000000000000000000000000000000..36676e19f5d91e6f70d8e6221d7b62840195b22a GIT binary patch literal 3146 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 literal 0 HcmV?d00001