From ec2c529fa50025c2b8c2e3293e27ce9480737cce Mon Sep 17 00:00:00 2001 From: dex_moth Date: Sat, 18 Nov 2023 12:42:03 +0400 Subject: [PATCH] lab 1 --- .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + .idea/workspace.xml | 69 ++++++++ PIbd-22_Isaeva_A.I._Airbus_Hard.iml | 11 ++ images/KeyDown.png | Bin 0 -> 1412 bytes images/KeyLeft.png | Bin 0 -> 1447 bytes images/KeyRight.png | Bin 0 -> 1188 bytes images/KeyUp.png | Bin 0 -> 1186 bytes .../Drawnings/DrawingAirbus$1.class | Bin 0 -> 785 bytes .../Drawnings/DrawingAirbus.class | Bin 0 -> 3660 bytes .../Drawnings/DrawingPortholes.class | Bin 0 -> 2078 bytes .../Entities/CountPortholes.class | Bin 0 -> 1116 bytes .../Entities/EntityAirbus.class | Bin 0 -> 1319 bytes .../FormAirbus$1.class | Bin 0 -> 2007 bytes .../FormAirbus$2.class | Bin 0 -> 1667 bytes .../FormAirbus$Canvas.class | Bin 0 -> 930 bytes .../FormAirbus.class | Bin 0 -> 2609 bytes .../Main.class | Bin 0 -> 388 bytes .../MovementStrategy/Direction.class | Bin 0 -> 1176 bytes src/Drawnings/DrawingAirbus.java | 144 +++++++++++++++++ src/Drawnings/DrawingPortholes.java | 93 +++++++++++ src/Entities/CountPortholes.java | 6 + src/Entities/EntityAirbus.java | 47 ++++++ src/FormAirbus.java | 151 ++++++++++++++++++ src/Main.java | 5 + src/MovementStrategy/Direction.java | 7 + 27 files changed, 553 insertions(+) create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 PIbd-22_Isaeva_A.I._Airbus_Hard.iml create mode 100644 images/KeyDown.png create mode 100644 images/KeyLeft.png create mode 100644 images/KeyRight.png create mode 100644 images/KeyUp.png create mode 100644 out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/Drawnings/DrawingAirbus$1.class create mode 100644 out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/Drawnings/DrawingAirbus.class create mode 100644 out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/Drawnings/DrawingPortholes.class create mode 100644 out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/Entities/CountPortholes.class create mode 100644 out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/Entities/EntityAirbus.class create mode 100644 out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/FormAirbus$1.class create mode 100644 out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/FormAirbus$2.class create mode 100644 out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/FormAirbus$Canvas.class create mode 100644 out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/FormAirbus.class create mode 100644 out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/Main.class create mode 100644 out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/MovementStrategy/Direction.class create mode 100644 src/Drawnings/DrawingAirbus.java create mode 100644 src/Drawnings/DrawingPortholes.java create mode 100644 src/Entities/CountPortholes.java create mode 100644 src/Entities/EntityAirbus.java create mode 100644 src/FormAirbus.java create mode 100644 src/Main.java create mode 100644 src/MovementStrategy/Direction.java diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..cdcb9fa --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..930ca43 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..d2e0a73 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + 1700296521973 + + + + + + + + \ No newline at end of file diff --git a/PIbd-22_Isaeva_A.I._Airbus_Hard.iml b/PIbd-22_Isaeva_A.I._Airbus_Hard.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/PIbd-22_Isaeva_A.I._Airbus_Hard.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/KeyDown.png b/images/KeyDown.png new file mode 100644 index 0000000000000000000000000000000000000000..db4019a388622a7a4d07285cd1a8195163d403d6 GIT binary patch literal 1412 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 literal 0 HcmV?d00001 diff --git a/images/KeyRight.png b/images/KeyRight.png new file mode 100644 index 0000000000000000000000000000000000000000..8fd306ddb11cd0f00137a0c93709d206f3da4d63 GIT binary patch literal 1188 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 AX8-^I literal 0 HcmV?d00001 diff --git a/out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/Drawnings/DrawingAirbus$1.class b/out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/Drawnings/DrawingAirbus$1.class new file mode 100644 index 0000000000000000000000000000000000000000..72f896430097ba8dffc0685f39f8f62012fb1df9 GIT binary patch literal 785 zcmaJ<(P|Sx6g`t{vPs<9SZkBkYOAK2SnZ;qFN#o_27^foU9As&nry~o>UO5gZW8<* zUwl?UM5G_!M~QcqLab0>nRCzO?mcJjonOCyoC4T}UqS|17mkM<@(e3oJrT!3B|&0% zB8DIQrZgf~8?4m%fDJ}aVtqKlG;OYj($n}$!7RKwV}5e3`Q^v7}S z5yM6;n93v^b@@r{-;TAvv@?h8B3ZrcVIE}$rz74a46FZhVXwB};VKpxTx|wY@rWT? zZ?s)3(N&N5g!>U!L%*kkaX4y85e;^Y(Z(uOJuF+L+`b%+5}Ud1Vbx|bZ%!<|>0vFk z($rJs;ub@B)^V?YL{noZJP#wOWbz^vJ|N>edLS6)J5q_>__#03Yu=A2v(V8Yj}Ewz zmY*f(f`o_fX*OrP6zH)DMN6iCoEzqr6{p6#DvWeYGwzCHqz5h@FjOvB0Qu{QIC-gK zvg);!5@sjjaV+BUI<0V>o(L;f?GkN7ncKKSSR?ikS&D$xcd*l+rLS`Gb1a)2asU6FS(W^I@9V#1>&Gy%PoH!XJa?uj~K- literal 0 HcmV?d00001 diff --git a/out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/Drawnings/DrawingAirbus.class b/out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/Drawnings/DrawingAirbus.class new file mode 100644 index 0000000000000000000000000000000000000000..cadd7ffb14aa8c6d9e763a2c5e0f16dc1d9dcc37 GIT binary patch literal 3660 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 literal 0 HcmV?d00001 diff --git a/out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/FormAirbus$Canvas.class b/out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/FormAirbus$Canvas.class new file mode 100644 index 0000000000000000000000000000000000000000..c25c5df9f8d7e4d8a76f70617400cf1cdf71f3e7 GIT binary patch literal 930 zcmZ`&TW=Ck5dH>e7q(kUTcNF&iVDi5mWsY%Oe&;a0*y%{5L6!8eV@ z+Yf0{ZQ_IR&BPyNoU;(9L0@(*-^_e7b7p`2{`MWfF78ASKu|--z#QfY%X^OO?OL)i za8qSr9|@N*?{zFUwL>tfQ?#TbjEDx^zyb_H;+Z%SFADC^vfG8nWvAD7Y}58Q`>thM z-aSGvldVS(#gc}Yfn}@^^l3f9($kg{L!0wQ{Dh5aW$bYaN}E7F`8fk|Bsi}xEZdtf za>I#CRdrJkL$B~aihjpxx}|Jg!#ZJg1}Ro_oW}(X7Y$s(CSmPAtb|2{97;E7sR+vgHCu!h{+KeVmzeDacb9RB*Iw4ecS|$Tk%Qp81y@n|dMWf4}m8#Pe-MWyL zvd7MldI%ojOqKB?l?bt#>2;je6Cp*<^i0Wt(Z4rCptj1M*#Kt;+r<_kK8x`jVytAazoIS`Fc_v`VA zWMaKnjm)SC2dbe+v&#i)+x>-os#K#EbyaXGaG_qnQP|{ZK~r6zzDOr)v!@Cx9(K~N zPH15}Rtap&T+iIjq!{g8hQ?SgQMiy<$SgK9_63G~g`wYNCT?Jtjq z<4Ibcl8CJ3#!}091GK(DKq;hT{bmQ+phy?p3ZBA7dNq+WjA+Cg*HlCE>j^`PXmNpc z*7c~fhDV#xB8I0wXz0;M4nWJBN-b}3pwqIvS-}=*x!$sz7>ds14Lf-9Rt4K+NcDrH zg06=3GnzL#9g9YIjNE@l!L!)G5EGg)rYH1?Fo{#%epJ$EJ=92 zP;#`9i)6jTjwv{T7cJ}vlPFNpJ~(L6Fi=fP9~T-CQPPG7VexZH-4(+rxxcFoW}(go;u0c-9^UpWbNrF z6iH!GUd@{d-oo2#WmGOL9D&v%Q~z699b@cr$0y_JY=m9WYJ>t!eqVMa;gM2)izQL+ zjZX6VYyEme8%|D7Xz@|itQwa;8dSq$YFwA|>|(ibLTBtsQBR}|$4E384{8ItthU-h z%h)7oOd<_y31di;wx#Z1gk8cLRuc)0(@LvNqlI}Z=bNz%HoSvNlx(sqbA;@N=A7Nj z99e_r$f`0&GRGWATXQ4@IYKrmb7V{5Xag^e=Lo#Z*(W?raP+%fVjgAg1yl#z^H`Qb z4dsS_Yvnu|Q)uF3ZD1bjQfQ^vCNb?PbWrY;vL}TucN$N-%hT9?%RJ>he%nX|U?nOU zj|D7o7yLSgkRj_1N9q*#UI#Tps#q4rEeKNG)a7gJ^^-= Yu@E}x@m0=No3mP6quj>7{B>Hxf3IGso&W#< literal 0 HcmV?d00001 diff --git a/out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/Main.class b/out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..09c699479d716e6be243cd21764d7087b12df86a GIT binary patch literal 388 zcmZusO-sW-5Ph4ZO%tQ7t=6-*)`K~Es0c;qDe9pT5l@@A#4Y)NZQ}p(R8a5-_@l&` zRHz3R_6_r9-kX`P@ApptbDa3FV7qVvbkG$TtmLZA2a344D9(D%XX*POr{+M_e M;ixq}CbTgA0Z*?)r2qf` literal 0 HcmV?d00001 diff --git a/out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/MovementStrategy/Direction.class b/out/production/PIbd-22_Isaeva_A.I._Airbus_Hard/MovementStrategy/Direction.class new file mode 100644 index 0000000000000000000000000000000000000000..883737e62b48a37e362f0f2218fe6f687cb25399 GIT binary patch literal 1176 zcmaJ)_Pk=!&pd!W~?Y?E0tXvK@IXZ42!O_ZQ@J^&(F<^*5#o3QIV#vTS52&x)W=lk_ z8c1V=L7T0vS9Z57hU}X`b##njT*HWgYq(BC4KMH=hS6NUa$q0XMbGw|#hv;AX)twU za6`kSfh=xP@xOpAztg6gN4D2-cJ>)cxxVZT&ptdf`vNo@*KeBr6*z(5pEhs{GYqk^ z>$}k^!+1YcFY|f68i%UW0H)(e#9_oS%)PvU0_M4R(a9mhR4zYIJ{9^6RW^b>Qa)U9 zedk4|U3bFQcHN`M;(t2G51J`Mx)L;OuWE-br|9u0zTGCe^uLo}NNqb&E7*H!hlGio zkXl!wmP;mKxlP}WIw7UXxqOw@qTKL$!&&I#;v*~%YHQVG(5;{oHk@ZJ7dG@~Hy8M? zTw9_MW@wq!wF$na09jfR8NOs3N%!|KPkHyrn<2{|y^GXmjGkfaBY6x9 z^o@x-iSStzAqo64S)QS%S>Y5DXJ8yJUBE9=#5hM`2@lA7NUut1A2^hD1+pMpA}iCC zR+yhW!PF-@UdE(hnX3>?35n#;nck8}SxM=9iKrx(RDwcZAgg@?tI1u+R!!+bvubLW zhFObsk+gW%7gfgb2rE5`Mvub$N(|}S@(E^-Aq(e@A{ _pictureWidth || y + _airbusHeight > _pictureHeight) { + _startPosX = _pictureWidth - _airbusWidth; + _startPosY = _pictureHeight - _airbusHeight; + } + else + { + _startPosX = x; + _startPosY = y; + } + } + + public void MoveTransport(Direction direction){ + if (entityAirbus == null) { + return; + } + + switch (direction) { + case Left: + if (_startPosX - entityAirbus.Step > 0) + { + _startPosX -= entityAirbus.Step; + } + break; + case Right: + if (_startPosX + _airbusWidth + entityAirbus.Step < _pictureWidth) + { + _startPosX += entityAirbus.Step; + } + break; + case Up: + if (_startPosY - entityAirbus.Step > 0) + { + _startPosY -= entityAirbus.Step; + } + break; + case Down: + if (_startPosY + _airbusHeight + entityAirbus.Step < _pictureHeight) + { + _startPosY += entityAirbus.Step; + } + break; + } + } + + public void DrawTransport(Graphics2D g) { + + if (entityAirbus == null) { + return; + } + // тело + g.setColor(entityAirbus.getBodyColor()); + g.fillRect(_startPosX+3, _startPosY+17, 103, 20); + g.setColor(Color.BLACK); + g.drawRect(_startPosX+3, _startPosY+17, 103, 20); + + // иллюминаторы + _portholes.Draw(g, _startPosX, _startPosY); + + // нос + int[] xPolygonNoise = {_startPosX+106, _startPosX + 120, _startPosX+106,}; + int[] yPolygonNoise = {_startPosY+17, _startPosY+27, _startPosY+37}; + + g.setColor(entityAirbus.getBodyColor()); + g.fillPolygon(xPolygonNoise, yPolygonNoise, xPolygonNoise.length); + g.setColor(Color.BLACK); + g.drawPolygon(xPolygonNoise, yPolygonNoise, xPolygonNoise.length); + + // хвост + int[] xPolygonTale = { _startPosX+2, _startPosX+27, _startPosX+2}; + int[] yPolygonTale = {_startPosY, _startPosY + 18,_startPosY+18}; + g.setColor(entityAirbus.getBodyColor()); + g.fillPolygon(xPolygonTale, yPolygonTale, xPolygonTale.length); + g.setColor(Color.BLACK); + g.drawPolygon(xPolygonTale, yPolygonTale, xPolygonTale.length); + + // крыло + g.setColor(Color.BLACK); + g.fillOval(_startPosX+43, _startPosY+25, 22, 5); + g.drawOval(_startPosX+43, _startPosY+25, 22, 5); + + // двигатель + g.setColor(Color.BLACK); + g.fillOval(_startPosX+1, _startPosY+15, 19, 5); + g.drawOval(_startPosX+1, _startPosY+15, 19, 5); + + // шасси + g.setColor(entityAirbus.getBodyColor()); + g.fillOval(_startPosX+25,_startPosY+38, 6, 6); + g.fillOval(_startPosX+30,_startPosY+38, 6, 6); + g.fillOval(_startPosX+100,_startPosY+38, 6, 6); + g.setColor(Color.BLACK); + g.drawOval(_startPosX+25,_startPosY+38, 6, 6); + g.drawOval(_startPosX+30,_startPosY+38, 6, 6); + g.drawOval(_startPosX+100,_startPosY+38, 6, 6); + + // пассажирский отсек + if (entityAirbus.IsCompartment()) + { + g.setColor(entityAirbus.getAdditionalColor()); + g.fillOval(_startPosX+57, _startPosY+11, 39, 9); + g.setColor(Color.BLACK); + g.drawOval(_startPosX+57, _startPosY+11, 39, 9); + } + + // доп двигатель + if (entityAirbus.IsAdditionalEngine()) + { + g.setColor(entityAirbus.getAdditionalColor()); + g.fillOval(_startPosX, _startPosY + 25, 11, 5); + g.setColor(Color.BLACK); + g.drawOval(_startPosX, _startPosY + 25, 11, 5); + } + } +} diff --git a/src/Drawnings/DrawingPortholes.java b/src/Drawnings/DrawingPortholes.java new file mode 100644 index 0000000..3ace808 --- /dev/null +++ b/src/Drawnings/DrawingPortholes.java @@ -0,0 +1,93 @@ +package Drawnings; + +import java.awt.*; +import Entities.*; + +public class DrawingPortholes { + private CountPortholes _porthole; + + public CountPortholes getCount() + { + return _porthole; + } + public void SetCount (int count) { + switch (count) { + case 10: + _porthole = CountPortholes.Ten; + break; + case 20: + _porthole = CountPortholes.Twenty; + break; + case 30: + _porthole = CountPortholes.Thirty; + break; + } + } + + public void Draw (Graphics2D g, int _startPosx, int _startPoxY) { + g.setColor(Color.BLACK); + if (_porthole == CountPortholes.Ten) { + // цикл + for (int i = 0; i < 10; ++i) + { + g.setColor(Color.cyan); + g.fillOval(_startPosx + 19 + i*8, _startPoxY+21, 3, 3); + g.setColor(Color.black); + g.drawOval(_startPosx + 19 + i*8, _startPoxY+21, 3, 3); + } + } + if (_porthole == CountPortholes.Twenty) { + for (int i = 0; i < 10; ++i) + { + g.setColor(Color.cyan); + g.fillOval(_startPosx + 19 + i*8, _startPoxY+21, 3, 3); + g.setColor(Color.black); + g.drawOval(_startPosx + 19 + i*8, _startPoxY+21, 3, 3); + } + for (int i=0; i < 5; ++i) + { + g.setColor(Color.cyan); + g.fillOval(_startPosx + 15 + i*5, _startPoxY+26, 3, 3); + g.setColor(Color.black); + g.drawOval(_startPosx + 15 + i*5, _startPoxY+26, 3, 3); + } + for (int i=0; i < 5; ++i) + { + g.setColor(Color.cyan); + g.fillOval(_startPosx + 70 + i*5, _startPoxY+26, 3, 3); + g.setColor(Color.black); + g.drawOval(_startPosx + 70 + i*5, _startPoxY+26, 3, 3); + } + } + if (_porthole == CountPortholes.Thirty){ + for (int i = 0; i < 10; ++i) + { + g.setColor(Color.cyan); + g.fillOval(_startPosx + 19 + i*8, _startPoxY+21, 3, 3); + g.setColor(Color.black); + g.drawOval(_startPosx + 19 + i*8, _startPoxY+21, 3, 3); + } + for (int i=0; i < 5; ++i) + { + g.setColor(Color.cyan); + g.fillOval(_startPosx + 15 + i*5, _startPoxY+26, 3, 3); + g.setColor(Color.black); + g.drawOval(_startPosx + 15 + i*5, _startPoxY+26, 3, 3); + } + for (int i=0; i < 5; ++i) + { + g.setColor(Color.cyan); + g.fillOval(_startPosx + 70 + i*5, _startPoxY+26, 3, 3); + g.setColor(Color.black); + g.drawOval(_startPosx + 70 + i*5, _startPoxY+26, 3, 3); + } + for (int i = 0; i < 10; ++i) + { + g.setColor(Color.cyan); + g.fillOval(_startPosx + 19 + i*8, _startPoxY+31, 3, 3); + g.setColor(Color.black); + g.drawOval(_startPosx + 19 + i*8, _startPoxY+31, 3, 3); + } + } + } +} \ No newline at end of file diff --git a/src/Entities/CountPortholes.java b/src/Entities/CountPortholes.java new file mode 100644 index 0000000..6a2b4bd --- /dev/null +++ b/src/Entities/CountPortholes.java @@ -0,0 +1,6 @@ +package Entities; +public enum CountPortholes { + Ten, + Twenty, + Thirty; +} \ No newline at end of file diff --git a/src/Entities/EntityAirbus.java b/src/Entities/EntityAirbus.java new file mode 100644 index 0000000..1f4b8a7 --- /dev/null +++ b/src/Entities/EntityAirbus.java @@ -0,0 +1,47 @@ +package Entities; + +import java.awt.*; + +public class EntityAirbus { + private int Speed; + private float Weight; + private Color BodyColor; + private Color AdditionalColor; + private boolean IsCompartment; + private boolean IsAdditionalEngine; + + public int Step; + + public int getSpeed() { + return Speed; + } + public float getWeight() { + return Weight; + } + public Color getBodyColor() { + return BodyColor; + } + public Color getAdditionalColor() { + return AdditionalColor; + } + public boolean IsCompartment() { + return IsCompartment; + } + public boolean IsAdditionalEngine() { + return IsAdditionalEngine; + } + + + public void Init(int speed, float weight, Color bodyColor, Color additionalColor, boolean isCompartment, boolean isAdditionalEngine) + { + + Weight = weight; + Speed = speed; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + IsCompartment = isCompartment; + IsAdditionalEngine = isAdditionalEngine; + + Step = Speed * 100 / (int) Weight; + } +} diff --git a/src/FormAirbus.java b/src/FormAirbus.java new file mode 100644 index 0000000..05d6c5e --- /dev/null +++ b/src/FormAirbus.java @@ -0,0 +1,151 @@ +import java.awt.*; +import javax.swing.*; +import java.awt.event.*; +import java.util.Random; +import Drawnings.*; +import MovementStrategy.*; + +public class FormAirbus extends JFrame { + + private DrawingAirbus _drawningAirbus; + private Canvas canvas = new Canvas(); + + JLabel labelCount = new JLabel("Введите число иллюминаторов:"); + private JTextField fieldCount = new JTextField(); + private JButton buttonCreate; + private JButton buttonUp; + private JButton buttonDown; + private JButton buttonRight; + private JButton buttonLeft; + + public FormAirbus() { + super("Создание самолёта"); + InitializeComponent(); + setVisible(true); + } + + private void InitializeComponent() + { + buttonCreate = new JButton("Создать самолёт"); + + buttonUp = new JButton(); + buttonUp.setName("up"); + buttonUp.setIcon(new ImageIcon("images\\KeyUp.png")); + buttonUp.setSize(48, 44); + + buttonRight = new JButton(); + buttonRight.setName("right"); + buttonRight.setIcon(new ImageIcon("images\\KeyRight.png")); + buttonRight.setSize(48, 44); + + buttonLeft = new JButton(); + + buttonLeft.setName("left"); + buttonLeft.setIcon(new ImageIcon("images\\KeyLeft.png")); + buttonLeft.setSize(48, 44); + + buttonDown = new JButton(); + buttonDown.setName("down"); + buttonDown.setIcon(new ImageIcon("images\\KeyDown.png")); + buttonDown.setSize(48, 44); + + setSize(800,500); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setLayout(null); + + buttonCreate.setBounds(12, 355, 170, 44); + buttonUp.setBounds(679, 313, 48, 44); + buttonRight.setBounds( 728, 358, 48, 44); + buttonLeft.setBounds(630, 358, 48, 44); + buttonDown.setBounds( 679, 358, 48, 44); + labelCount.setBounds(12, 405, 240, 20); + fieldCount.setBounds(210, 407, 48, 20); + canvas.setBounds(0,0,800, 460); + + add(buttonCreate); + add(buttonUp); + add(buttonRight); + add(buttonDown); + add(buttonLeft); + add(labelCount); + add(fieldCount); + add(canvas); + + buttonCreate.addActionListener(buttonCreateListener); + buttonUp.addActionListener(buttonsMoveListener); + buttonRight.addActionListener(buttonsMoveListener); + buttonDown.addActionListener(buttonsMoveListener); + buttonLeft.addActionListener(buttonsMoveListener); + } + + ActionListener buttonCreateListener = new ActionListener() { + public void actionPerformed(ActionEvent e) { + int countPortholes; + try + { + countPortholes = Integer.parseInt(fieldCount.getText()); + } + catch (Exception ex) + { + countPortholes = 0; + } + if (countPortholes != 10 && countPortholes != 20 && countPortholes != 30) + { + JOptionPane.showMessageDialog(null, "Число должно быть равно 10, 20 или 30.\nКол-во иллюминаторов приравнено к 10"); + countPortholes = 10; + } + + Random rand = new Random(); + _drawningAirbus = new DrawingAirbus(); + _drawningAirbus.Init(rand.nextInt(200) + 100, rand.nextInt(2000) + 1000, + new Color(rand.nextInt(256),rand.nextInt(256),rand.nextInt(256)), + new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)), + rand.nextBoolean(), rand.nextBoolean(), + countPortholes, + canvas.getWidth(), canvas.getHeight()); + + _drawningAirbus.SetPosition(rand.nextInt(100) + 10, rand.nextInt(100) + 10); + canvas.repaint(); + } + }; + + ActionListener buttonsMoveListener = new ActionListener() { + // реакция на нажатие + public void actionPerformed(ActionEvent e) { + if (_drawningAirbus == null) + { + return; + } + String command = ((JButton)(e.getSource())).getName(); + switch (command) { + case "up": + _drawningAirbus.MoveTransport(Direction.Up); + break; + case "down": + _drawningAirbus.MoveTransport(Direction.Down); + break; + case "right": + _drawningAirbus.MoveTransport(Direction.Right); + break; + case "left": + _drawningAirbus.MoveTransport(Direction.Left); + break; + } + canvas.repaint(); + } + }; + + class Canvas extends JComponent{ + public Canvas(){ + } + public void paintComponent (Graphics g){ + if (_drawningAirbus == null){ + return; + } + super.paintComponents (g) ; + Graphics2D g2d = (Graphics2D)g; + _drawningAirbus.DrawTransport(g2d); + super.repaint(); + } + } +} diff --git a/src/Main.java b/src/Main.java new file mode 100644 index 0000000..03af442 --- /dev/null +++ b/src/Main.java @@ -0,0 +1,5 @@ +public class Main { + public static void main(String[] args) { + new FormAirbus(); + } +} \ No newline at end of file diff --git a/src/MovementStrategy/Direction.java b/src/MovementStrategy/Direction.java new file mode 100644 index 0000000..3441376 --- /dev/null +++ b/src/MovementStrategy/Direction.java @@ -0,0 +1,7 @@ +package MovementStrategy; +public enum Direction { + Up, + Down, + Left, + Right; +} \ No newline at end of file