From 0e65921327a5fd3756293297e23ec57de156226c Mon Sep 17 00:00:00 2001 From: asoc1al Date: Mon, 18 Sep 2023 12:47:53 +0400 Subject: [PATCH] =?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=201(=D0=B5=D1=81=D1=82=D1=8C=20?= =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D1=8B,=20=D0=BD=D0=B5=D1=82=20?= =?UTF-8?q?=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=BE=D0=BD=D0=B0=D0=BB?= =?UTF-8?q?=D0=B0=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BE=D0=BA)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DumpTruck/DumpTruck/Direction.cs | 16 +++ DumpTruck/DumpTruck/DrawingTruck.cs | 120 ++++++++++++++++++ DumpTruck/DumpTruck/DumpTruck.csproj | 15 +++ DumpTruck/DumpTruck/EntityTruck.cs | 27 ++++ DumpTruck/DumpTruck/Form1.cs | 10 -- ...orm1.Designer.cs => FormTruck.Designer.cs} | 10 +- DumpTruck/DumpTruck/FormTruck.cs | 28 ++++ DumpTruck/DumpTruck/FormTruck.resx | 60 +++++++++ DumpTruck/DumpTruck/Program.cs | 2 +- .../Properties/Resources.Designer.cs | 103 +++++++++++++++ .../{Form1.resx => Properties/Resources.resx} | 13 ++ 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 15 files changed, 388 insertions(+), 16 deletions(-) create mode 100644 DumpTruck/DumpTruck/Direction.cs create mode 100644 DumpTruck/DumpTruck/DrawingTruck.cs create mode 100644 DumpTruck/DumpTruck/EntityTruck.cs delete mode 100644 DumpTruck/DumpTruck/Form1.cs rename DumpTruck/DumpTruck/{Form1.Designer.cs => FormTruck.Designer.cs} (77%) create mode 100644 DumpTruck/DumpTruck/FormTruck.cs create mode 100644 DumpTruck/DumpTruck/FormTruck.resx create mode 100644 DumpTruck/DumpTruck/Properties/Resources.Designer.cs rename DumpTruck/DumpTruck/{Form1.resx => Properties/Resources.resx} (84%) 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..fbff3f8 --- /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 + } +} \ No newline at end of file diff --git a/DumpTruck/DumpTruck/DrawingTruck.cs b/DumpTruck/DumpTruck/DrawingTruck.cs new file mode 100644 index 0000000..fb1ab84 --- /dev/null +++ b/DumpTruck/DumpTruck/DrawingTruck.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 drawingTruck + { + 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 b57c89e..13ee123 100644 --- a/DumpTruck/DumpTruck/DumpTruck.csproj +++ b/DumpTruck/DumpTruck/DumpTruck.csproj @@ -8,4 +8,19 @@ enable + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file diff --git a/DumpTruck/DumpTruck/EntityTruck.cs b/DumpTruck/DumpTruck/EntityTruck.cs new file mode 100644 index 0000000..f0a7cd2 --- /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; + } + } +} \ No newline at end of file diff --git a/DumpTruck/DumpTruck/Form1.cs b/DumpTruck/DumpTruck/Form1.cs deleted file mode 100644 index 2326120..0000000 --- a/DumpTruck/DumpTruck/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace DumpTruck -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/DumpTruck/DumpTruck/Form1.Designer.cs b/DumpTruck/DumpTruck/FormTruck.Designer.cs similarity index 77% rename from DumpTruck/DumpTruck/Form1.Designer.cs rename to DumpTruck/DumpTruck/FormTruck.Designer.cs index 073cfce..e2ceb32 100644 --- a/DumpTruck/DumpTruck/Form1.Designer.cs +++ b/DumpTruck/DumpTruck/FormTruck.Designer.cs @@ -1,6 +1,6 @@ namespace DumpTruck { - partial class Form1 + partial class FormTruck { /// /// Required designer variable. @@ -28,10 +28,10 @@ /// 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"; + components = new System.ComponentModel.Container(); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 450); + Text = "Form1"; } #endregion diff --git a/DumpTruck/DumpTruck/FormTruck.cs b/DumpTruck/DumpTruck/FormTruck.cs new file mode 100644 index 0000000..1a2608a --- /dev/null +++ b/DumpTruck/DumpTruck/FormTruck.cs @@ -0,0 +1,28 @@ +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 + { + public FormTruck() + { + InitializeComponent(); + } + private void btnCreate_Click(object sender, EventArgs e) + { + + } + private void btnMove_Click(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/DumpTruck/DumpTruck/FormTruck.resx b/DumpTruck/DumpTruck/FormTruck.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/DumpTruck/DumpTruck/FormTruck.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/DumpTruck/DumpTruck/Program.cs b/DumpTruck/DumpTruck/Program.cs index a716913..b5a689f 100644 --- a/DumpTruck/DumpTruck/Program.cs +++ b/DumpTruck/DumpTruck/Program.cs @@ -11,7 +11,7 @@ namespace DumpTruck // 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 FormTruck()); } } } \ No newline at end of file diff --git a/DumpTruck/DumpTruck/Properties/Resources.Designer.cs b/DumpTruck/DumpTruck/Properties/Resources.Designer.cs new file mode 100644 index 0000000..aac7e60 --- /dev/null +++ b/DumpTruck/DumpTruck/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace DumpTruck.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("DumpTruck.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/DumpTruck/DumpTruck/Form1.resx b/DumpTruck/DumpTruck/Properties/Resources.resx similarity index 84% rename from DumpTruck/DumpTruck/Form1.resx rename to DumpTruck/DumpTruck/Properties/Resources.resx index 1af7de1..3d5a144 100644 --- a/DumpTruck/DumpTruck/Form1.resx +++ b/DumpTruck/DumpTruck/Properties/Resources.resx @@ -117,4 +117,17 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\down.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\up.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