SRQNo6XvVjV2G35S-#E=eo^iI6tXYT_ZhP=v`DKx3%p8FM#OjhJ~biTaRu*=h9^8Ywog2=+^tx)wmgGrq
z_J!m5p({?`@@U}qHPDb3RfK_UJSIgAl%Y6hOomgMmOK^Jr7ms9fge&a<4_15?0PnJ
zDWrxj&@h2mCL7U*BaZ7|%S+aY4KZ$QD?oPb%C2{dahK0(SlNBXM@
zH|b1JIPeg6>Aa>=6mSpsNu#H7Vad->MQxhaA&X2~DqG*6@h^E4{5D-vKT-T()y}c@
z9qa$nuMi5L4g*cB3B6A#E6CqRg-P<9JZCsmlNkDPiXaA1#
zLviD}_5=2#cI`e%R|wO5$T>OZdAXnGxt}M0|MTZx0B+*96gtqULo<*-QsCkx^<)soPr^c2rNIiPMMnAb3VCKn+
zGMKGNr;^dqzzG*pDwjpgN$mZRe>(S!k#=^p?z`4*2
zas5vwr!e#z7{H)_VS1Jfti0`+HA~=Trcijl;zaz)ugZp%jZ||wh6Q?KxE4Kkw~@k-
z%GUXlmzxT@3hRP_iz=qX_JcxkA%%0etTH<)Fq4V
zK~~}Zl#yiS=M|J8%owtYh?x?a3#}Dr0LdbmZ>=7XV-Ro%iEJXHEYH8
zgWM_1;)aed403KxV6=ti{Td{gESCiaqM#xMt?fLc{oKT31@M-EFF_*q6V9S18&%u%
z^R5$EFM^qQf$<|;5oua6pAgM;;f{b-T-YqCbl)?O2enmNi*}$`6hqMFa0>UasN;cw
z0+s}NR6s47@B4vOrwK-(+FIUx{bo)xU`
zM;#(C5;qa+ADZf@nCygi%ADkz!0E7vt8I1&@<)#XdL$qU?XMCG&JIz7FzLy%y~}*2
zHr-v%wC>xgAgPczS5@KJmaCk;4=q(MU&k*3-7T_>U1M4cj$?WGn)H3k$0%oJN7(8b
z=mSZONQ62SNPfnVMDF+5Sq*W1c(p&u!$9}F-E
zjT7X!0f`-+3-a3Jn+8M|9d+}pI@we1DZjz#Ci)&8VyJY0^y(qbm8Rcd9pGUT
z>r+i^9$}otY5E;uC>PMr0X~XL7{?fA))n02@GWrMtYHd8Of%p-5znK7g)p8C=8~9O
z2~oQ;EJkE7bx$ePL5oG6+UTU+MLfe#%*8BbP(z)$FVL3*m$4Tq*}%`xsl(q{lokBS
zoFwUCxaZ=mc8IOg`Bx*a2DDex2Y57>NGD$NE-KR*dI0TdSfc)Ni0*cz+eSAG4?Zo^
v9s=%EZHBRnUg~P}zsEC;+MOZx1lQ-G{TERGh$Q8g@sgN84YiM+m(lVscr@_@
literal 0
HcmV?d00001
diff --git a/Tank game - Client/out/production/Tank game - Client/test5$1.class b/Tank game - Client/out/production/Tank game - Client/test5$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..c3855976fe9b8c6541fc2b7b8534afb9494f59d5
GIT binary patch
literal 583
zcmYjN+fLg+5Ivii*fAyq+5)|BYx9t#Qd1uKfIx^UY6U1oNT9qg&eCj^>>_(p_^nF4
zNPXxB^rH}GO(?bGotZOd&RqW9{Qd)A8;vSTD2E6V%%CC=I+eS3jV*zS8|u9AmQb(2
zc49=RhKLi)A`w{sBEQOu>y9*fESh!9Q9?UeLMvNKdC_VPN1>1
zL)oD;178p{kGx>n*ed~X#6G8XlBMdS_Sv|Y;*H;g-9DIfWOHpke^PE}2MIQ?DKM92
ziW7FNamqM>iNZbCQxnV^r21$vjs%bxOP)AnJ90WqKw4
zvsi?{BYJy`JrcKH|A1)!LinxVJmy;=2Y7}je3$N6w9AahFVwgfR`7JHwNG1SE^2>=
v_=&j(rMReGMToWk)S`cC5xYERb$}PFFJYBDFsfl4FAJoGSF|xXep-IFby8`MAFYVXw&B)rcyZ7ZnH3$YB9l1k3VK_|nzXXtIcbZ;
zhK@V(hSlAx)>Ie_dC}5Dqtid&%>VG_h`5a
z&A_p}V>@&OpC;$5*mmB~w5D9Mf>G%3x+`vIa;#+`%8;x1ju%9(f7ashFc_#XsT)~A
zF52_}2SG%J^oH;AuDGO3mTquRE*wy9XwzL#qOn0a4z;TlZM-(v)UFVHiW8zZAE19;L@urNbnJJnj->@euriR!-%eMSJ4VzQBT;VR=
zs$toF=9Ij%-6Jhng_bxHI#xs1p!=rh@8335buFJ}B4yJkYtYV$TC0vVXwwi4F|@o$
z*Xejbq)8>s+a=dDJX20ObgY+?mT70!9IBdTS)>o?*no{R?O(1EVV!a=Q{nB*kndXd
zWHv#qE*+cjFs*u~KkOQ|S229^3~!}!-6Nu~MaR}93S)BesE%#e&a0E*)d|O)_B3oy
zbuR{@seOs9W-7(6{T1ToOwkOBWlX15DYywAcG>!osIXt7GRm=t9
zKW_L_^u>3IM%g0eAli!8vpNRF(Rxf(I>gj-I-VCh%_YYZj>mPJSfWX?M{r8V3rf?o
zY|$LjF)SI3FvVv?Frs60Q7{(kZw~^eVP7iGzXmR0oh)WEXn~-t2b_xIvaD%#z$vr7
z))Xw;JTWspZo0#gWT`l(WK>2B*OGlGjQCR)3AYv+>p#oNzr^PnRt8tXrWfN}HLF#LtB6{O|H88uWtj9^cua&m{^Wj@oZSZ=Z!E*(P4ak)Jl-ac
zcNC9efOlVb^veGO6_-g&g^XMzRaE-ZH}J^s*fEx#$6CL}U5d}Hc4V9q7kl~is?AM2
z`5T^Y!f1MIo~aYMPd5?qfahHr)UZKXGH&;=wA^1%l|;P;e?r=VUukH58AHvO
XQ<1#HSt${{!nr8FXgKt_zJ|mGZ_ry!5
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
KRfpP-(*FWg8!a*b
literal 0
HcmV?d00001
diff --git a/Tank game - Client/src/Test2.java b/Tank game - Client/src/Test2.java
new file mode 100644
index 00000000..5f8f41b6
--- /dev/null
+++ b/Tank game - Client/src/Test2.java
@@ -0,0 +1,101 @@
+import javafx.animation.AnimationTimer;
+import javafx.application.Application;
+import javafx.event.EventHandler;
+import javafx.scene.Group;
+import javafx.scene.Scene;
+import javafx.scene.input.KeyCode;
+import javafx.scene.input.KeyEvent;
+import javafx.scene.paint.Color;
+import javafx.scene.shape.Circle;
+import javafx.scene.transform.Rotate;
+import javafx.stage.Stage;
+import javafx.scene.shape.Line;
+
+
+
+public class Test2 extends Application {
+ int move = 5;
+ int circleX = 200;
+ int circleY = 150;
+ int angleCount = 0;
+ double angleRadians;
+
+ public static void main(String[] args) {
+ launch(args);
+ }
+
+ @Override
+ public void start(Stage stage) {
+
+
+ Circle circle = createCircle(circleX, circleY, Color.GREEN);
+ Line line = createLine();
+ final Group group = new Group(circle, line);
+ final Scene scene = new Scene(group, 600, 400, Color.WHITE);
+
+
+ moveCircleOnKeyPress(scene, circle, line);
+ stage.setScene(scene);
+ stage.show();
+ }
+
+
+ void lineMove(Line line, int angle) {
+ line.getTransforms().add(new Rotate(angle, circleX, circleY));
+
+ angleCount += angle;
+ if (angleCount == 360) {
+ angleCount = 0;
+ }
+ if (angleCount == -360) {
+ angleCount = 0;
+ }
+
+ angleRadians = Math.toRadians(angleCount);
+ }
+
+
+ private Circle createCircle(int circleX, int circleY, Color color) {
+ int radius = 30;
+ final Circle circle = new Circle(circleX, circleY, radius, color);
+ return circle;
+ }
+
+ private Line createLine() {
+ final Line line = new Line(200, 150, 230, 150);
+ return line;
+ }
+
+
+
+
+ private void moveCircleOnKeyPress(Scene scene, final Circle circle, final Line line) {
+ scene.setOnKeyPressed(new EventHandler() {
+ @Override
+ public void handle(KeyEvent event) {
+ switch (event.getCode()) {
+
+ case UP:
+ circle.setCenterX(circle.getCenterX() + move * Math.cos(angleRadians));
+ circle.setCenterY(circle.getCenterY() + move * Math.sin(angleRadians));
+ break;
+
+ case RIGHT:
+ lineMove(line, 10);
+ break;
+
+ case DOWN:
+ circle.setCenterX(circle.getCenterX() - move * Math.cos(angleRadians));
+ circle.setCenterY(circle.getCenterY() - move * Math.sin(angleRadians));
+ break;
+
+ case LEFT:
+ lineMove(line, -10);
+ break;
+
+ case SPACE:
+ }
+ }
+ });
+ }
+}
diff --git a/Tank game - Client/src/test5.java b/Tank game - Client/src/test5.java
new file mode 100644
index 00000000..f25fb1b5
--- /dev/null
+++ b/Tank game - Client/src/test5.java
@@ -0,0 +1,188 @@
+import javafx.animation.AnimationTimer;
+import javafx.application.Application;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
+import javafx.scene.layout.Pane;
+import javafx.scene.paint.Color;
+import javafx.scene.shape.Circle;
+import javafx.scene.shape.Rectangle;
+import javafx.scene.transform.Rotate;
+import javafx.stage.Stage;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class test5 extends Application {
+ private Pane root = new Pane();
+
+
+ private Sprite player = new Sprite(300, 300, 70, 40, "player", Color.BLUE);
+
+
+ private Parent createContent() {
+ root.setPrefSize(1200, 700);
+ root.getChildren().add(player);
+
+
+ AnimationTimer timer = new AnimationTimer() {
+ @Override
+ public void handle(long now) {
+ update();
+ }
+ };
+ timer.start();
+ nextLevel();
+ return root;
+ }
+
+ private void nextLevel() {
+ for (int i = 0; i < 10; i++) {
+ Sprite s = new Sprite(90 + i * 100, 150, 30, 30, "enemy", Color.RED);
+ root.getChildren().add(s);
+ }
+ }
+
+ private List sprites() {
+ return root.getChildren().stream().map(n -> (Sprite) n).collect(Collectors.toList());
+ }
+
+ private void update() {
+ sprites().forEach(s -> { //handles what happens to the sprites/bullets
+ switch (s.type) {
+ case "enemybullet":
+ s.moveDown();
+ if (s.getBoundsInParent().intersects(player.getBoundsInParent())) {
+ player.dead = true;
+ s.dead = true;
+ }
+ break;
+
+ case "playerbullet":
+ final int angle = player.getAngle();
+ s.moveBullet(angle);
+ sprites().stream().filter(e -> e.type.equals("enemy")).forEach(enemy -> {
+ if (s.getBoundsInParent().intersects(enemy.getBoundsInParent())) {
+ enemy.dead = true;
+ s.dead = true;
+ }
+ });
+ break;
+ }
+ });
+
+ root.getChildren().removeIf(n -> {
+ Sprite s = (Sprite) n;
+ return s.dead;
+ });
+ }
+
+ private void shoot(Sprite who) { //shoot function, creates sprites from shooting player
+ int bulletW = 5; //bullet width
+ int bulletH = 5; //bullet height
+ Sprite s = new Sprite((int) who.getTranslateX() + (int) who.getWidth() / 2, (int) who.getTranslateY() + (int) who.getHeight() / 2, bulletW, bulletH, who.type + "bullet", Color.BLACK);
+ root.getChildren().add(s);
+ }
+
+
+ public void start(Stage stage) throws Exception {
+ Scene scene = new Scene(createContent());
+
+ scene.setOnKeyPressed(e -> { //movement switch case
+ switch (e.getCode()) {
+ case LEFT:
+ player.rotateLeft();
+ break;
+ case RIGHT:
+ player.rotateRight();
+ break;
+ case UP:
+ player.moveForward();
+ break;
+ case DOWN:
+ player.moveBackward();
+ break;
+ case SPACE:
+ shoot(player);
+ }
+ });
+ stage.setScene(scene);
+ stage.show();
+ }
+
+
+ private static class Sprite extends Rectangle {
+ boolean dead = false;
+ int angle = 0;
+ int angleIncrease = 10;
+ int moveSpeed = 10;
+ final String type; //either bullet or player
+
+
+ Sprite(int x, int y, int w, int h, String type, Color color) { //constructor
+ super(w, h, color);
+ this.type = type;
+ setTranslateX(x);
+ setTranslateY(y);
+ }
+
+ Sprite(int x, int y, int w, int h, String type, Color color, int angle) { //constructor
+ super(w, h, color);
+ this.type = type;
+ setTranslateX(x);
+ setTranslateY(y);
+ }
+
+ void rotateLeft() { //function for rotating a sprite left, pivoting around its middle
+ getTransforms().add(new Rotate(-angleIncrease, getX() + getWidth() / 2, getY() + getHeight() / 2));
+ angle += -angleIncrease;
+ }
+
+ void rotateRight() { //function for rotating a sprite right, pivoting around its middle
+ getTransforms().add(new Rotate(+angleIncrease, getX() + getWidth() / 2, getY() + getHeight() / 2));
+ angle += angleIncrease;
+ }
+
+ void moveForward() {
+ double angleR = Math.toRadians(angle);
+ setTranslateX(getTranslateX() + moveSpeed * Math.cos(angleR));
+ setTranslateY(getTranslateY() + moveSpeed * Math.sin(angleR));
+ }
+
+ void moveBackward() {
+ double angleR = Math.toRadians(angle);
+ setTranslateX(getTranslateX() - moveSpeed * Math.cos(angleR));
+ setTranslateY(getTranslateY() - moveSpeed * Math.sin(angleR));
+ }
+
+ void moveBullet(int angleB) {
+ double angleR = Math.toRadians(angleB);
+ setX(getX() + moveSpeed * Math.cos(angleR));
+ setY(getY() + moveSpeed * Math.sin(angleR));
+ }
+
+ int getAngle() {
+ return angle;
+ }
+
+ void moveLeft() {
+ setTranslateX(getTranslateX() - 5);
+ }
+
+ void moveRight() {
+ setTranslateX(getTranslateX() + 5);
+ }
+
+ void moveUp() {
+ setTranslateY(getTranslateY() - 5);
+ }
+
+ void moveDown() {
+ setTranslateY(getTranslateY() + 5);
+ }
+ }
+
+
+ public static void main(String[] args) {
+ launch(args);
+ }
+}
+
From 7fdaa43bc64aea439db533d7e613ebacc50d71c5 Mon Sep 17 00:00:00 2001
From: signetoftgaard <56248226+signetoftgaard@users.noreply.github.com>
Date: Mon, 12 Oct 2020 13:02:23 +0200
Subject: [PATCH 18/73] .
---
Tank game - Client/.idea/workspace.xml | 30 ++++++------------
.../Tank game - Client/Test4$MyTimer.class | Bin 576 -> 0 bytes
.../production/Tank game - Client/Test4.class | Bin 1715 -> 0 bytes
.../Tank game - Client/test3$1$1.class | Bin 1568 -> 0 bytes
.../Tank game - Client/test3$1.class | Bin 879 -> 0 bytes
.../production/Tank game - Client/test3.class | Bin 2134 -> 0 bytes
6 files changed, 10 insertions(+), 20 deletions(-)
delete mode 100644 Tank game - Client/out/production/Tank game - Client/Test4$MyTimer.class
delete mode 100644 Tank game - Client/out/production/Tank game - Client/Test4.class
delete mode 100644 Tank game - Client/out/production/Tank game - Client/test3$1$1.class
delete mode 100644 Tank game - Client/out/production/Tank game - Client/test3$1.class
delete mode 100644 Tank game - Client/out/production/Tank game - Client/test3.class
diff --git a/Tank game - Client/.idea/workspace.xml b/Tank game - Client/.idea/workspace.xml
index afd6d2b7..09363147 100644
--- a/Tank game - Client/.idea/workspace.xml
+++ b/Tank game - Client/.idea/workspace.xml
@@ -1,17 +1,7 @@
-
-
-
-
-
-
-
-
-
-
-
+
@@ -111,7 +101,7 @@
-
+
@@ -135,22 +125,22 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
diff --git a/Tank game - Client/out/production/Tank game - Client/Test4$MyTimer.class b/Tank game - Client/out/production/Tank game - Client/Test4$MyTimer.class
deleted file mode 100644
index b546b04c64042ad657f118397e15419f7124e22a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 576
zcmY+A$xZ@65QhJr85kS}#SQl@;Q*MpL@ow3F(w8Ha*=Rvq>XK$Cz%i9(({F
z%2?gDQ7>KfS66+te0;vW1K7vL7#z4hybu{=846vIr1kRoV^@wu%#cm5Wm4W@@Z096
z5g>;#A3=ybLWZ>)e#fsKwz-lcp2|pVAOCnigafH$dc@#Xs=a`^jfa@frMW@WZJp?()9QnrcUveAwf$)Y=9;J)qA1H+X|4zqW9%($ZL0
zMfVJ>Mcpo<+xSwPO4HiZZRs^=qz-N0jFQyHDnrJ6F@$GIiTGs5lSEJ}-yR3+v`mh!
z$cjaMJn~$M
N3f9O52Dzg5{sQC}Tn_*M
diff --git a/Tank game - Client/out/production/Tank game - Client/Test4.class b/Tank game - Client/out/production/Tank game - Client/Test4.class
deleted file mode 100644
index b66a6881a1a59641d184361eff410764d2178591..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1715
zcmaJ>YgZdp6y29RCYcW972euHr8Oj!QH!Wh5gKTl8X}sMHsWg-rpdU%Bx`2S`V0Dd
z>{4*a(&gv=f&Lqp``$chyJUrX?wot>zI&f@?tSs^pML}R1g?$&L^MPV#1I#_@}u>W
z_2j8(HJf$UwnDeznOnWNK>W7rx#5ODB)zzwL;^_-x`9hD1Y%_;2v=xB+Q$MSF9R+c
z7*ea!ThZwmF))fTV%4n^nnfqz?-6V6$#{RkIZOu2)@O+?TQA1|~4cSb6Njyuf5y
zg_2_sT2+V992u-(T3}EySlIog>>fM5jw#GaVQ&fO>4I8Quvc(Z!<>P6DfwzgvgaPR
z1$Sl&g?f0BA8L3Yn90r279d64(-m%4+GzVOztFfxEcZ$D>zxfkfbhWjCxl0^_aIUhAS9
z@&+D&nU=wd|AjtM)RbFwM-ICNin2ALL9OvKO^(SB7%I4)Q#?67bo{b)C=VPhG;FKB
zZ~3nLZabr4%?$*!cE54^G3!HP`BnPI-q7l;7ON65)va$&<2t){=c(;9gT1BrP@j^t4*&h
zw{l6^rN)VGJ9k}~EM48dWyxINQjz7|b!0A?6C>|=j-RVrLEy;LweK(QXM)cY)IVPs
z)o^@EXrtiah;#gcUpYny+L6o|L}vKtcW7!H{FTlD>~Xw|2*)9A9EOe&e914PwFzIL
z#IGdE7;6LGqLqNL%pVx;fyl=aND*Yb4pqYYXa8_#4p=PxK_#h2JIP#!DlHf
zJjabQEEUgTR-%95{YvC!=?u5lqUTtxOh;4rn7`*(JHw}IvFzyPDeh#aW2d-Js)Zia
z8$1k{<2a8&EZ{odwN<2fkuuC^mXeo9Z&}IMXwmA*IB3gA((?_zrHJd?`yIY#6;?U_
i0T$&wU>y!&GZ_&a@vH$jctR_MPoc`0u4W0;Fz_G319)Qq
diff --git a/Tank game - Client/out/production/Tank game - Client/test3$1$1.class b/Tank game - Client/out/production/Tank game - Client/test3$1$1.class
deleted file mode 100644
index 35cb798090b29781e4f7fc2f871d98c6e3dd1bd9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1568
zcmaJ>Yg5}s6g>;Z!a@|+AumEww{?lJX*HDQK}9LXhLT_isVNOjUqWm^K}a4+W||+<
zul-)8ac0_?Og{HVb$V7d)Se;L*xJ?Iv-h5R@7ewPpFdv%n1_?W00uRr3=APHkcnj!
z&lP41vjXY((2dk2Q}0?Wg&sDLfi5s~Vta*HK-6>?7}fBOfiYwSvd`@k+w^SzzpqHxTIm+z-3$!xS`2s%cAmeJV
zF9mKDr|TC()jFwN!*vZ425w+dVB+mifmD5Ebz5Na|NY&rj
zL5l=0Cr(T^FtRM%Os{$liCEFERsSIwOl$QNt1+C|VU<&;zv*fOwyF9dYeJhoAWPmwEVohzGLRHnNqElxp23GMEwR33u`yK_5@08{(Qc0@x;J+$Kr5`g<
z(OTkwxsDdkmCSH#P)Au~b=Q}ht>ZlzZrgh*RIVO4wzp%4uKMm8Q|dejjGXx>%vu7&
zN9R(#*!DehJ8p$!Tu*%V
zo;vF+O3$`#B^J(>E;@78B1!0tpcOiD)m7EdljHx1(vZN|itl(qL|tyk_%PVl@ICe0
zy&zP}eq>#X4;8=ROx{?yo;#g
zLH@_^kgMyQRr#G#mQwj8M5*`^TIm%=ey3>wb-vRCg1X<}`wDGp^Cli~R5Rt0mzB~~
z*Ws@Wr$Q{3+j#dBSAWCEDQ@OIY~!Q9P~IKK$H~t;#q2BG+nAYY+u!VbR%@GYJs<1W7An8H*1fS(e}&)DObBjzbb
J^{60x{slE3V>JK(
diff --git a/Tank game - Client/out/production/Tank game - Client/test3$1.class b/Tank game - Client/out/production/Tank game - Client/test3$1.class
deleted file mode 100644
index 347abba7cbdbb6ecf19de7e8a6e9db7f2e4dbbc2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 879
zcmZWnZEq4m5Pr5$t{m6$QV^@9pq>g>Ent0#!I;#xrbR@PHY9$$9&0&s>?L;xv46pT
zV9ndh0A-+zAm0`MHql2|}YL)^e35)4|z!)V)VG9;pb
z8=4I=b(F0oBbN*$p)+L1wr7Ts9YkGQ_{Z*$GqARdFbphXg&`#)hG$0(7v#%#KG|dY
zSRQNo6XvVjV2G35S-#E=eo^iI6tXYT_ZhP=v`DKx3%p8FM#OjhJ~biTaRu*=h9^8Ywog2=+^tx)wmgGrq
z_J!m5p({?`@@U}qHPDb3RfK_UJSIgAl%Y6hOomgMmOK^Jr7ms9fge&a<4_15?0PnJ
zDWrxj&@h2mCL7U*BaZ7|%S+aY4KZ$QD?oPb%C2{dahK0(SlNBXM@
zH|b1JIPeg6>Aa>=6mSpsNu#H7Vad->MQxhaA&X2~DqG*6@h^E4{5D-vKT-T()y}c@
z9qa$nuMi5L4g*cB3B6A#E6CqRg-P<9JZCsmlNkDPiXaA1#
zLviD}_5=2#cI`e%R|wO5$T>OZdAXnGxt}M0|MTZx0B+*96gtqULo<*-QsCkx^<)soPr^c2rNIiPMMnAb3VCKn+
zGMKGNr;^dqzzG*pDwjpgN$mZRe>(S!k#=^p?z`4*2
zas5vwr!e#z7{H)_VS1Jfti0`+HA~=Trcijl;zaz)ugZp%jZ||wh6Q?KxE4Kkw~@k-
z%GUXlmzxT@3hRP_iz=qX_JcxkA%%0etTH<)Fq4V
zK~~}Zl#yiS=M|J8%owtYh?x?a3#}Dr0LdbmZ>=7XV-Ro%iEJXHEYH8
zgWM_1;)aed403KxV6=ti{Td{gESCiaqM#xMt?fLc{oKT31@M-EFF_*q6V9S18&%u%
z^R5$EFM^qQf$<|;5oua6pAgM;;f{b-T-YqCbl)?O2enmNi*}$`6hqMFa0>UasN;cw
z0+s}NR6s47@B4vOrwK-(+FIUx{bo)xU`
zM;#(C5;qa+ADZf@nCygi%ADkz!0E7vt8I1&@<)#XdL$qU?XMCG&JIz7FzLy%y~}*2
zHr-v%wC>xgAgPczS5@KJmaCk;4=q(MU&k*3-7T_>U1M4cj$?WGn)H3k$0%oJN7(8b
z=mSZONQ62SNPfnVMDF+5Sq*W1c(p&u!$9}F-E
zjT7X!0f`-+3-a3Jn+8M|9d+}pI@we1DZjz#Ci)&8VyJY0^y(qbm8Rcd9pGUT
z>r+i^9$}otY5E;uC>PMr0X~XL7{?fA))n02@GWrMtYHd8Of%p-5znK7g)p8C=8~9O
z2~oQ;EJkE7bx$ePL5oG6+UTU+MLfe#%*8BbP(z)$FVL3*m$4Tq*}%`xsl(q{lokBS
zoFwUCxaZ=mc8IOg`Bx*a2DDex2Y57>NGD$NE-KR*dI0TdSfc)Ni0*cz+eSAG4?Zo^
v9s=%EZHBRnUg~P}zsEC;+MOZx1lQ-G{TERGh$Q8g@sgN84YiM+m(lVscr@_@
From 5c8b6720a5abd7fced2ec9dea979b306b52661ce Mon Sep 17 00:00:00 2001
From: AsgerLanghoff <54887248+AsgerLanghoff@users.noreply.github.com>
Date: Mon, 12 Oct 2020 13:03:40 +0200
Subject: [PATCH 19/73] .
---
.idea/workspace.xml | 27 ++++++++++
Server/.idea/workspace.xml | 74 ++++++++++++++++++++++++++++
ServerTestClient/.idea/workspace.xml | 60 ++++++++++++++++++++++
3 files changed, 161 insertions(+)
create mode 100644 .idea/workspace.xml
create mode 100644 Server/.idea/workspace.xml
create mode 100644 ServerTestClient/.idea/workspace.xml
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 00000000..9d346313
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Server/.idea/workspace.xml b/Server/.idea/workspace.xml
new file mode 100644
index 00000000..76f26ddc
--- /dev/null
+++ b/Server/.idea/workspace.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1602241973712
+
+
+ 1602241973712
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ServerTestClient/.idea/workspace.xml b/ServerTestClient/.idea/workspace.xml
new file mode 100644
index 00000000..9aa202cb
--- /dev/null
+++ b/ServerTestClient/.idea/workspace.xml
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1602242737493
+
+
+ 1602242737493
+
+
+
+
+
+
+
+
\ No newline at end of file
From bfca6d14fdeb2088f0a9309519f654d924816ac2 Mon Sep 17 00:00:00 2001
From: JacobNoer <56248119+JacobNoer@users.noreply.github.com>
Date: Mon, 12 Oct 2020 13:08:09 +0200
Subject: [PATCH 20/73] .
---
.vscode/launch.json | 14 ++++++++++++++
.../src/com/company/ServerTestClient.java | 2 +-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 5adb5307..e1005547 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -11,6 +11,20 @@
"mainClass": "Main",
"projectName": "Gruppe-306-PCSS_7455d736"
},
+ {
+ "type": "java",
+ "name": "CodeLens (Launch) - ServerTestClient",
+ "request": "launch",
+ "mainClass": "company.ServerTestClient",
+ "projectName": "Gruppe-306-PCSS_7226f30"
+ },
+ {
+ "type": "java",
+ "name": "CodeLens (Launch) - ServerTestClient",
+ "request": "launch",
+ "mainClass": "ServerTestClient",
+ "projectName": "Gruppe-306-PCSS_7226f30"
+ },
{
"type": "java",
"name": "CodeLens (Launch) - ServerTestClient",
diff --git a/ServerTestClient/src/com/company/ServerTestClient.java b/ServerTestClient/src/com/company/ServerTestClient.java
index a769d410..24ef66e9 100644
--- a/ServerTestClient/src/com/company/ServerTestClient.java
+++ b/ServerTestClient/src/com/company/ServerTestClient.java
@@ -12,7 +12,7 @@ public static void main(String[] args) {
DataInputStream fromServer = null;
int port = 8000;
// ipv4 address for server
- String host = "172.30.242.61";
+ String host = "192.168.43.236";
boolean Continue = true;
Socket socket = null;
From a6efc67875e02b64c2ac7bf453c1e4d5b96605c2 Mon Sep 17 00:00:00 2001
From: signetoftgaard <56248226+signetoftgaard@users.noreply.github.com>
Date: Mon, 12 Oct 2020 14:04:05 +0200
Subject: [PATCH 21/73] a
a
---
Tank game - Client/.idea/workspace.xml | 45 ++++++++++--------
.../Tank game - Client/test5$1.class | Bin 583 -> 583 bytes
.../Tank game - Client/test5$2.class | Bin 787 -> 787 bytes
.../Tank game - Client/test5$Sprite.class | Bin 2726 -> 2117 bytes
.../production/Tank game - Client/test5.class | Bin 6330 -> 6362 bytes
Tank game - Client/src/test5.java | 42 ++++------------
6 files changed, 35 insertions(+), 52 deletions(-)
diff --git a/Tank game - Client/.idea/workspace.xml b/Tank game - Client/.idea/workspace.xml
index 09363147..e0850564 100644
--- a/Tank game - Client/.idea/workspace.xml
+++ b/Tank game - Client/.idea/workspace.xml
@@ -1,7 +1,10 @@
-
+
+
+
+
@@ -31,7 +34,7 @@
-
+
@@ -42,22 +45,22 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -80,10 +83,10 @@
+
-
@@ -109,6 +112,10 @@
+
+
+
+
@@ -125,22 +132,22 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
@@ -157,10 +164,10 @@
-
+
-
+
diff --git a/Tank game - Client/out/production/Tank game - Client/test5$1.class b/Tank game - Client/out/production/Tank game - Client/test5$1.class
index c3855976fe9b8c6541fc2b7b8534afb9494f59d5..d736d5a07425b5bd6331f3ecd277494832d9ed1e 100644
GIT binary patch
delta 23
fcmX@ka-3zu21Z8d$r~9xS>+hm8RRGbXY>F7S?&hL
delta 23
fcmX@ka-3zu21Z7y$r~9xS!Eg68RRDaXY>F7S0U;p-qyPW_
delta 13
UcmbQtHkob1UM9w<$@`c>0U;&?r2qf`
diff --git a/Tank game - Client/out/production/Tank game - Client/test5$Sprite.class b/Tank game - Client/out/production/Tank game - Client/test5$Sprite.class
index b4d9701f6b8bba4e358a8329e57dd19d328dc43d..f8e34a4f06e8368c745773641b4d4b0014d34827 100644
GIT binary patch
delta 628
zcmah`$w~u35Ph>{8MmM&;1W=90W~HeLGX~M2f>r#&3%vi7Nf=}7(oRW(8#!eA0Qrr
zAczMK-n{rNf`1@Zm%}hO58d^;srTwt)r0rLqksOqy#r`R`dR;$6$ugJRS6qyO4j&N
zGDc3Vmo|-8HPS4j1RlziQD#OTM-M7cN&ikd8U`R?&?wisvqSW5fSc|#3b0PONqDh=
zDx^@09W)|?0Co|<9)>BahZUk2!6?0eD8`5*F&ZZ%GnyczFq$N!G7|MQMpKxEgU}2T
zDjRun^aq8JVkYe)j4V2Ezy%9gywfT;iv)98oqaaWAwoDp497N3+~UlcoV>FuChC;3
zr4wrV6xBFG5a-PEvHg(Ab5ry4Sm64LmO`D;>+;)FE=c8)RC1(p^^eLDmf8EGE6#)e
z^KnhXxS{pjq6K%XP{VTwSpEZ8;UPOrM>46bVohjKH$jSG0b0`wit+?xh$bEUd2btt
ZW(q2_XTL~G(xOF7VT+czo0gl|4JxRh
zPEZP35OjxH3?F*vsb2bLs>dLr@A)}QgAMf3!p`~5+4+6W_k7Q9_H+DMZS2dh4<7++
z!KHHSs~L6LYk0?x`eDu)DfQEA3GHn-s9uFi4Uxh8Xr?36S2PgSva>&%qjt3J8a5!m
z@5ql0sr6R9QBwP?)=fY);sRXmjtLp#Sb>$Cui)3lVHh}~URpaRkMe#aqP$+f5)}CC
zS=3?#btqyT#!-(FlDLRgOyC%w+Ji8!DRiTUqgKaRV~9FIWr{jU6%y4;Wr@=3+oDb(
z1Bc2+UxhY8`H2$|RkqSTLze>#U7?|?G<1!Iu8W~gLz<6f_6_to4+GwvXbyS|z>ujaH{lXteK^*YNWt$RF?
z`&b2qCOnY3ge2SS)0!%U1#={nNqUtkaE{`wY9$Z^$nqoG_sc#Uy~|Y~U9@P^AYd27)Gq)Ehv0P12h{(z!qqIu?fn{0E?(K!wj6sv8i)lrH{fea9^#agY!LJ_x$_8faWo~nO&j{n%&R_~i{1kUMX<}LTW
zcbDH?UM8z=RU217nS2Gn0@`@gINt4s2U!9>WD^_*2K(Xz1X`h}xdM5L>Kup;_7B8$
zOd*JPbTnR9*0pD3FdlWGfVq2Ok+JBA8&grFqgY@XN{(J{a`{mz;J^&&r-e;31q$#P
zf;W8k{RRU%$^|MAAb3Wj@y?Oxj;_J`qijieYiq?i#SaP0#vJ(~&G%HHT1Sn*T-3_<
zsde@|f^NyHHc*H8O5Xy4QEq8zPy!mTNXKG)L{y
z0=p2CC+yYEA%S7+k?+_;t}2WOj3O?Dqk7zr{Q?JYkdVNqDbfh3_&ZWV=3
zx@LPX;G&L6flIhdD3GSBK(2N92K;zM;8i8s7#WT;p5f?@xI*VA0Pl@HTF+AAQkC
z9~asN12^$&9lsIyEiTIpcS-&4S!XIAx9y9?qO9{K{vdD*wOnh_z561uQ5XKidaSzp
z{~^B|b3dBr$KM40t~^vZ&@|K^WBmQHz$o%;!Ezr1KjcBDY&N>6Umi1RZJpRDuNnJf
zyXQ^HJZp;A$Xjku1qE~p3JTHevwzO86IIH;dP7-UWge;#G@VLK^{taxn!kQsrcU*W
zGha|4-ZIsuA3Dq+GJMd%V#M8)zkv%tQdFjKDf
z`emip>(r^2P@LZC@?WNJ+zt(1WO6HnYJaJj8y?S^>Q+2^!PyNbkN@V~2;95^<_FG$
z0+*ooo`-t^Mj*?6dIDx3OS?RQ9A@}?vna%0v)wHB<)1;}c}$-`*~=-(AMlvRQZdfr
z?W{f%CKIwy#Hv4Jrm&RYKlmthfh#9%z=M2EW7_<{Io5g(=3yRk4ks~75t0behNo-&|-ovH_CZ5F1W6om+4Ix2ZJ7c){us2CeL7N7|AQn;|=W`Qx+TLOBbqKs9Eu
z&R|M>32aRB;=c^D#(#B;YxdoKlLFce?IURPA!_*uw@n^Z9Kt*+c4=DIMJyvsVij-^
z_iDI+wHL8b!xd~f%^>q(<*^DPFy}6WOD*R}A*zv$fA-s!K)eiAZ1)Q6+m&Lt5h`
zb}PbO2Kr7=z3dZE!|`0sV1_MCvOhbso6DcIE7KE<28SMPuEnlKl_(sZeMfj0JK~6K
z<@vK}Gp;sMi-PBHXcAur&fpP-cA-73J>Raty_(%H?qK*-Oj^jv@M)Y*O{DY6#;>87
z0@u#`MshJvsUKpFGP2|n9`EI>c;Y-{M~MA91|;!~U?_=aS^tZ7oJwUX)^SqyaFXui
zOxeW`e9Q`>d?+Vt+)W1S5Xd192?jBP<+E1u!c8VlGEZrq%d-lABX9wUJK_yC3^>6T
zUbrhV4$2}QU}~z^(*oY$lj`i|GkA$jd^w5pb58PJ=H!-)mnHGz1S%LGUR_CGnzj0A
z0=d@e=LvWM*78lI-ImIUIsA@*U+WMyvVog05BFg)wqPkDScYv_$tky*W8cjW^(G9a
zEVK$^bGk6t9?GSvJoZ<4=Ylij=8tX~s_mssZ{}H}+R!Mhe9?#e_-a1h&7w*f
ZCO^MmYoY#`wLYiRWV&b__0R_7{}1PzJpKRx
delta 2923
zcmaJ@XzD{G4dGBJ^puJe6QissySLk~gTWvX-D*%0dQeP_K+FBN*kDiN+;64K!ed
zj+Fw9a>Q1>e6>ImG=h6LdNdY}9*z#V&_ZxVhoc9NsW@5%)~X=v+t;;uP>FQ{>#;$;
zWvkF`5!i&yQnv>^?YLFP7J;qUCY$U%o(}BLaht$SbjoM#n_TVa64;H~<$Lz#!XA$K
zK;&?wYCJYDR23c=iy83X4uQRh$PUK>ZJ$6dqVl+-&ee@Rfqo3gOOB8>C@_SB@^6ly
zs}dsuhj5o%;0!UWV*)XZ%Wh|GyNM$LM=?%t^+jWy1HG|+113HuaJLesv2e#|WO!^S
z5{q`Jof85dS37Rr*%%$@>yNovdXK=p_=J4PS)$!1a6eAUcb)4pv+-$x2NWL8*6^CO
zn{_-Wo3%XcVS&?lMDEdom8bBig8eb(y*#YK+<&xcY#-xUwKXyt9gZ;xJ~;4MfzRP_
zIi=OOPT>iGGx&o1hgR=-3SZRmC4n#FX&KU2Xejwh0xu`!2S*M^*N==IiH!Ct`6~iHRC1x@t&x3$
z)`kbK3j7$aF-+|ANQ{t?O2K5c$m=e>#Kh|YKfzBqu-<5-mq5D>T*aF@ekSm9cC^f0
z68TRcI7>y0Om3#0`4TF58R_>XlCzb@q1j$*ab=jc$>x
zp4Z8|;1w^EcZop(s?aGYsFIdmcqh$4R4xDH4QA9ZLsToMlopukS|&@<3u+sbbcLWo
zyk@E^l&;ZgC2JCtOL->cv0#lst+ZCBHqJL%Cx_Et@owOPCMztHJ!mnDDmSag!h*6W
z+oWuMY>N_X6;wj=O`6Yw4kg$jsF>!-Q)a$n7h$2?;?0pydo|BkS$Je*aQu)?yXBi^
zZQKSMyh!IpV^i&jM=zK*XncQ0Rnnuuu&RNuSu`_kyiUgJi5?G~9Jg<~N8O>+c0YB1^gJNDSMhPk~A5|z#I^ef#
zq#Q_F%m=UI2D@NGlWg!6#?3BscY)d4zc&Mqo5g0aulYRIaA@r*PlA>k_YqBe^o9!7
zp0w*{@4-#l#TFN!93h@B=T5DHF5xo^7}$>(U2!A4*jVH+3q_G#?0;WE1CP*C)N+w~mer725_5*s=Ae~#oG
zH!UPkwI?uxJC*MJHl!@h;D8bgGy4C_Zb;snS!Cy0m(OJS8_g~zW%M-P4xe@o?d9>9
zS{zr4!lH_ch|l1Y;P&(>26Uw(r9RKWkjj5%HpVpuNHMXNbOy-AeR2)CcxFdEcN+zt
zgZCSWp-MtC%sVQel3ASU;#_!W3ZH2YasU!Y;PVy11fFF3&&+vk(bUO#*u_aQhys44
z%)>#8rnsdnl^d*<4Dzr+fh-b~#+Z587`s5}a8m{*cuz4@%cH{E8MuV6&Dk>8ONE<*
z*_tE5Nj}O1Oq(jrCONT4cN!;?I^ZkKX&lDwVTOR-dTmw
zb2IoJ@>6vV$Et#GK?}P1r<;aqSShz#c~rYb;4;iG(|bjF{H4|TRKP+f|0%|ZBjvtl
zJwmDgRH2+x$HeMdjhL)lCgS-zl)yZPaTDfD&LbRqaw~k2d~fF#ORzAVG<$}+I5uaxJqe8
ze%bp7GF04xt+*NYB*VyK53W@thZOfUGeGk1ImK~5KLI|-FPzlDDjuzDWLExPOK_6Kl!MAxuZ!%kHcqPpa)o|e sprites() {
+ private List sprites() { //funktion der returner en liste
return root.getChildren().stream().map(n -> (Sprite) n).collect(Collectors.toList());
}
@@ -49,7 +50,6 @@ private void update() {
sprites().forEach(s -> { //handles what happens to the sprites/bullets
switch (s.type) {
case "enemybullet":
- s.moveDown();
if (s.getBoundsInParent().intersects(player.getBoundsInParent())) {
player.dead = true;
s.dead = true;
@@ -82,7 +82,6 @@ private void shoot(Sprite who) { //shoot function, creates sprites from shooting
root.getChildren().add(s);
}
-
public void start(Stage stage) throws Exception {
Scene scene = new Scene(createContent());
@@ -111,12 +110,11 @@ public void start(Stage stage) throws Exception {
private static class Sprite extends Rectangle {
boolean dead = false;
- int angle = 0;
- int angleIncrease = 10;
- int moveSpeed = 10;
+ private int angle = 0;
+ private int angleIncrease = 10;
+ private int moveSpeed = 10;
final String type; //either bullet or player
-
Sprite(int x, int y, int w, int h, String type, Color color) { //constructor
super(w, h, color);
this.type = type;
@@ -124,13 +122,6 @@ private static class Sprite extends Rectangle {
setTranslateY(y);
}
- Sprite(int x, int y, int w, int h, String type, Color color, int angle) { //constructor
- super(w, h, color);
- this.type = type;
- setTranslateX(x);
- setTranslateY(y);
- }
-
void rotateLeft() { //function for rotating a sprite left, pivoting around its middle
getTransforms().add(new Rotate(-angleIncrease, getX() + getWidth() / 2, getY() + getHeight() / 2));
angle += -angleIncrease;
@@ -159,25 +150,10 @@ void moveBullet(int angleB) {
setY(getY() + moveSpeed * Math.sin(angleR));
}
- int getAngle() {
+ public int getAngle() {
return angle;
}
- void moveLeft() {
- setTranslateX(getTranslateX() - 5);
- }
-
- void moveRight() {
- setTranslateX(getTranslateX() + 5);
- }
-
- void moveUp() {
- setTranslateY(getTranslateY() - 5);
- }
-
- void moveDown() {
- setTranslateY(getTranslateY() + 5);
- }
}
From 846cfaea2deaf5475aa77cfdd956d26a74e1493e Mon Sep 17 00:00:00 2001
From: AsgerLanghoff <54887248+AsgerLanghoff@users.noreply.github.com>
Date: Mon, 12 Oct 2020 14:20:08 +0200
Subject: [PATCH 22/73] added settings to gitignore
---
Server/.idea/.gitignore | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Server/.idea/.gitignore b/Server/.idea/.gitignore
index 7c0f099e..89cf46b5 100644
--- a/Server/.idea/.gitignore
+++ b/Server/.idea/.gitignore
@@ -7,4 +7,4 @@
/project-template.xml
/vcs.xml
/launch.json
-/settings.json
\ No newline at end of file
+/settings.json
From 049a4b91d37ba922bd70004371eaa57b3adf5bcf Mon Sep 17 00:00:00 2001
From: AtleNyhus <55181788+AtleNyhus@users.noreply.github.com>
Date: Mon, 12 Oct 2020 14:40:02 +0200
Subject: [PATCH 23/73] projectile
---
.idea/.gitignore | 8 ++
.idea/Gruppe-306-PCSS.iml | 12 ++
.idea/libraries/lib.xml | 13 ++
.idea/misc.xml | 9 ++
.idea/modules.xml | 8 ++
.idea/vcs.xml | 6 +
.idea/workspace.xml | 121 +++++++++++++++++-
.../Gruppe-306-PCSS/Collision.class | Bin 0 -> 252 bytes
.../out/production/Gruppe-306-PCSS/Map.class | Bin 0 -> 928 bytes
.../Gruppe-306-PCSS/Projectile.class | Bin 0 -> 2637 bytes
.../out/production/Gruppe-306-PCSS/Tank.class | Bin 0 -> 756 bytes
.../production/Gruppe-306-PCSS/Test2$1.class | Bin 0 -> 1881 bytes
.../production/Gruppe-306-PCSS/Test2$2.class | Bin 0 -> 787 bytes
.../production/Gruppe-306-PCSS/Test2.class | Bin 0 -> 2872 bytes
.../production/Gruppe-306-PCSS/test5$1.class | Bin 0 -> 583 bytes
.../production/Gruppe-306-PCSS/test5$2.class | Bin 0 -> 787 bytes
.../Gruppe-306-PCSS/test5$Sprite.class | Bin 0 -> 2726 bytes
.../production/Gruppe-306-PCSS/test5.class | Bin 0 -> 6330 bytes
Tank game - Client/src/Main.java | 54 --------
Tank game - Client/src/Projectile.java | 117 +++--------------
20 files changed, 185 insertions(+), 163 deletions(-)
create mode 100644 .idea/.gitignore
create mode 100644 .idea/Gruppe-306-PCSS.iml
create mode 100644 .idea/libraries/lib.xml
create mode 100644 .idea/misc.xml
create mode 100644 .idea/modules.xml
create mode 100644 .idea/vcs.xml
create mode 100644 Tank game - Client/out/production/Gruppe-306-PCSS/Collision.class
create mode 100644 Tank game - Client/out/production/Gruppe-306-PCSS/Map.class
create mode 100644 Tank game - Client/out/production/Gruppe-306-PCSS/Projectile.class
create mode 100644 Tank game - Client/out/production/Gruppe-306-PCSS/Tank.class
create mode 100644 Tank game - Client/out/production/Gruppe-306-PCSS/Test2$1.class
create mode 100644 Tank game - Client/out/production/Gruppe-306-PCSS/Test2$2.class
create mode 100644 Tank game - Client/out/production/Gruppe-306-PCSS/Test2.class
create mode 100644 Tank game - Client/out/production/Gruppe-306-PCSS/test5$1.class
create mode 100644 Tank game - Client/out/production/Gruppe-306-PCSS/test5$2.class
create mode 100644 Tank game - Client/out/production/Gruppe-306-PCSS/test5$Sprite.class
create mode 100644 Tank game - Client/out/production/Gruppe-306-PCSS/test5.class
delete mode 100644 Tank game - Client/src/Main.java
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 00000000..5e92354f
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/../../../../../../../:\Users\atlen\Documents\GitHub\Gruppe-306-PCSS\.idea/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/Gruppe-306-PCSS.iml b/.idea/Gruppe-306-PCSS.iml
new file mode 100644
index 00000000..caa038c6
--- /dev/null
+++ b/.idea/Gruppe-306-PCSS.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/lib.xml b/.idea/libraries/lib.xml
new file mode 100644
index 00000000..59fbaf73
--- /dev/null
+++ b/.idea/libraries/lib.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 00000000..168ea28e
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 00000000..eae67bba
--- /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 00000000..35eb1ddf
--- /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
index 9d346313..10d0b78d 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,27 +1,134 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1602501096197
+
+
+ 1602501096197
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
+
\ No newline at end of file
diff --git a/Tank game - Client/out/production/Gruppe-306-PCSS/Collision.class b/Tank game - Client/out/production/Gruppe-306-PCSS/Collision.class
new file mode 100644
index 0000000000000000000000000000000000000000..2bdf3c6ac6c8b69fb76d8b749c053d5898381eb7
GIT binary patch
literal 252
zcmX|5y9&ZU5S)#PG4Y9iV5b(Q7R5%e3R)=kmw4!fGY2vHUsi&JAK*ucdqLcV*`3)3
z^ZqZAN5KbQMw%4wBf
zy_SyM5s1D}j`DW}Lb-f1hWN#>15bACI1B-!{$*p|lRDc#45mh%7g)~KG;X;giQ4cz
zx-0pnj!2qV(7a(+S|{3&GLgm-k@~jZRDE^avFXjd9ffC1tl)}3jNXR&N>?OTt?Ht#
zlI7ppt6kZ$t5(m6<9Yz^w+*bq)XNPM8`uheUf1n8w&M$A#)@?KOHaCOW%Vg3hAg{Omo6#ydhc0ZvZfsS@U(kudv9bQCROWM
zveT5F(&w=;?6*~)YHG}_Fu6-U&GPQD#?ddm7Q@q*xC!z>&qH7-$ej!`m=du=uCfGH
z{&P;crMZ3SoCqvj?1zA8k#cID=;pKM!
zIP;tT0hZ6PdX&00#9F;H!202oWSy5x0~&l1nB#3Tv4(kMc`6|pkQYV-tn)5o4Q$~a
z?vp;t5+C3p%PsNr2#JRaQE+wp`E`NYO%H_MyIV5S;N!H3-_RPHdnLT^v{QKXZ{{Xm;R{?au<%3(n1Fwdj
zL;X~b7WCqNG`V+ZWGfoHGx=h^GONKA3a5SO)Zk9(#TNni;PT@QC?C2MZlGI3V69w|
zMfrlkb;kw$+$gh=konUx_f3UfyhW*lJe9R40owW%2Jp59|A|pqvzPco)|zlyW(+9|
zV}$aYu~;;Y^2P}}p`GSAqY7iVMQ2prE1hZZgyM1Gy{%zLHud~0dXhDYM)c%BKQ^KZ
z`Es^ki2Az<@8OOH-@Z{fTPsnT8;#4zU4_u~$T>&65BeB1{sI`sq(tm}It;~Pv2a>;
z7ghKGA8Jq*gXKcQNTRL(X;J!E;T}HWjtH<|6e~t~+hm9d!)FSg3xi+iHjWJ=CriFi
zn8u71k@^yMh#WFHtMJw9f*FyTQ<%S&I{R=~8l7?TQXrcq)ghINGvG5B-&vSdZ6DArAdv{=2?cEq%;kTFdbmY8-FzQI$*
za(*+BSWN9MBooPX4IMjV@~_No?{2IuF2*!;EtHBU6}?zV>xHV}lEbMVz`CBxS9zXY
z%kk8Fa(j1uE*9V1kU1WrFO+i3((XjQXslL`_Kb2$-;=!UO_Z{FA+4A5(zlK7%0Zq=
zD$&UBX->7%)Q*fK93y7s{jP>iJ9cb(Bv7n1W~O#dq3Ur?uNcdAvdYodGus~u+kzBh
z%3CpZhb(m(B)*hjD|Q`Nb}7-+mD^+m*t%I(WXUv>E!g)tuu-a(v&NEnTe}+@o04?J
zZ5~1gL)C>re2W!m*k!K+&)Db5m~CEqvu384HFLtOnFeOfb2e)pu30l1%v!f=z6Ipe@k?lp)*Qpq-gc)_4afP*M-`;wJGxj)p?Y$TS-BpRO;wl{Z15@&^
z;UoI`^deis{f6yJ+8&5)q2c(3xiG?LPw>f{Y;qp1I}g{LhwIMy@Z0;GC5*s(BivG;
zp=@m_MYK&*b-rEBAm3ATD7*Rm1(0Ti7Z;jcxh`z%|7#m0a*H#fL5AG
zR)Y7Sky;)bNkbVY_Tt8-MlSKN733K~^fn-JlLUlcCR?i+RY3SrcL3RH1^LMVq!Z`$2X@MQ
lIe`K1-+_#)r!SdtOW|ShJDv!bX1=gi>igLH-ps-u{s*8xhz|e&
literal 0
HcmV?d00001
diff --git a/Tank game - Client/out/production/Gruppe-306-PCSS/Tank.class b/Tank game - Client/out/production/Gruppe-306-PCSS/Tank.class
new file mode 100644
index 0000000000000000000000000000000000000000..c472fb6d39fa81f74a6095e7a3a507907819f3fe
GIT binary patch
literal 756
zcmZ`$%Syvg5Iwg|6I-LL??-*>LMzy-Pm2Y?-{B@jW>f?*>DQz3Qhw%u&itzBnN%eP*osbKE;HNTlt
zh^}vx;ut{OLc+!%Yz3p}*6zsM_$*YH!VcR=B1P)qENBpP1RS+77J`o<7`t!|ig`-s
z51r$Dk;VJLm8Xy__%-jObzk=CMYmifGFk{KZnfmreaSnZ(Y)~~Z5G6RS7G2jXp@sk
ztcKUr#>Tp{QPO}mwXT0CF5-}3u9?Jn(5hFwBVQcjBD5uEz%nO~@Jum&xf5RzS%Wcw
z@lKowBjg;!O(?k|zmv?iS+Arz^9GfPzQTHD7QvKYj38^Uewr^^S7HXU%z$)PWs{kx
zs9v)eh-I%)bs81sFi%$ObF>f>Gn0PBP_J8CCuy7t6()66*V+u1<*&m+f31CR&SF>dci5bDlNxf}tl4s4t?In)~5-{z6O&FQ|)E1|{eH*gD7WdHyG
literal 0
HcmV?d00001
diff --git a/Tank game - Client/out/production/Gruppe-306-PCSS/Test2$1.class b/Tank game - Client/out/production/Gruppe-306-PCSS/Test2$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..99721cf5779a0b54d4f38ab6d08d0756cf25b68b
GIT binary patch
literal 1881
zcmah}U2hvj6g?9=+1QyjCJ8P5NJ+s3+ez&v<*PUZNG5eo$bu-rAeG>u7fq
z${P|7{1Q}&x1z=%9)LHbzVs1^{10A`5NBpx#}1Z=G@i}ed(S=h+&lB+pPzpLa0T@k
z1`sh2l^Dd3fU#-&!CZ1yU?`|Ne)1BJiux?CJclJ>hzrE`%tq33JgZ>~oGEUbd*1
zZQE8rV)Ksc1PcO@RJszw37j%52WbPzGdPz+$>9{+)L2}Lh
zYOz@*lY!fXIL>0yz&VK*F~xFvs?qK_x-ak9F0&goI|w7srP94sbX=94g}j894J0Kl
z;1z+>{ZT_Gqv=&0*KFvT$R~xgfsDj7W~fz9WVgEPgJMHows%9vF2#^V&cG#!Sx|*R
z-8zBj{pKEv6$NE~P2zRDAt0%0!@h1-9n}`3$5rA``;r;dnZRn&
zFPd6P(=~+!iFffHN%&nPl(nL)?@KHy`iB&6D*R=M6$Kvg9ap)nN)&oQ=$6HrL=h#<
zjGC8{CO?_#l{-{I4^2U(9KeReHGISgshe(9P3F{*kWPnmGxO<+f%2iiw(4+Bn^rY|
zC$NxePk+DM?HTW9(zMbQsugy4R2{7E-ruslO>;|e8!I*~vr#cUNB!SEjH*i~5DSwg
zXY*{KrX?`ho90L<0>{dMY2D+vx1mmUYVWFxB@?~u)Lb*z^~j>AQM)f#{#l-`u(llY
z&rIP(KSE)FWaH)Lu4maRj;b)OhcBz9NMLl?wHi$}y;ib=db27~1$`#eV1_zwxV&Z8
zJlm%LYaQ}osiw)EFZ68w{ngj%{Ba%p{
zmkr>~$4c*f5cx(%xW=(buaEh)%7`fUiOlpqL}q3mM&{x^MlwHQ^byYoP~qX#7lJfZAA-0u;Ya|hG;lqcxbr{qSw)VfU
z^dRhb2lg)w8&Tp!v^aB+{4Qb!8(60ZJCwnvz+Y3~Zz$7u6zX@}!V}!VANUM^VyjEY
zgN~2~^tnxWJ|)@+250`p%BWh2s|39hDvQh1Rp}qgO#guy9wOWKrWj)&}P%+swbj@V{4u!UzBW
literal 0
HcmV?d00001
diff --git a/Tank game - Client/out/production/Gruppe-306-PCSS/Test2$2.class b/Tank game - Client/out/production/Gruppe-306-PCSS/Test2$2.class
new file mode 100644
index 0000000000000000000000000000000000000000..682c29498309725bc36bef1811521006dc3fb6ca
GIT binary patch
literal 787
zcmaJ<+iuf95IvhXabjFzN}-`Gv<0_KxWo_%Bm_dL(u79MO*m~I`s6rE<6`W}b_#qE
z&wzvwLiqqb3NgEh$O|BOcjg?;`ka~FpTE9O06axiLkejXijEAj3@c~Oh4cEo6}vp(
zmKU6l6YGF~sD(q$kiBsHF^?J6OXZW+zbl{RkwadErsEQH2DQ)Qq-s_fwoLn-m$;+0
zb8b%0n^MV?O6DJ>)JZc>#xCn9z+gxn_88XwrzqN3)NvI{Bo{_QFK~Q@bgA4_aeda7
z$P;)*F4&3VzM*N&ux5wj$mI=BoY3T0D?*f^P!C)`jJ@Er&680$RAEs+vVvT6
z=mPe`m<;L7AmCBWcjB1G#s*!~9eN1ND2l5R88KVfrnp0Bf;45o;Wx0!5A6%o&*EG7
ziYrR@Ba{OPmkDO(aD`xY4sQ}v=Wv5yPQp+0TXx*i?3hh{>iuPYND7Ys}@8bbQ1r^#KN~VHG6gAl|B}VQyKwqKL
literal 0
HcmV?d00001
diff --git a/Tank game - Client/out/production/Gruppe-306-PCSS/Test2.class b/Tank game - Client/out/production/Gruppe-306-PCSS/Test2.class
new file mode 100644
index 0000000000000000000000000000000000000000..96bb9d24c2ea8139c824d614ea593d1b96f3e34a
GIT binary patch
literal 2872
zcmbVOYgZFj6y29R2I2?-0)hg9)fxgAA1$o}DM(OLc?lGZ_Tdmlh>Z!(45+Pr*#~{U
ztG1u|6Iz#mEvsFAZ2O~J-SZ!#^PcooidzsE*l*v_67XC>1^8R6YzxFrz=p73Jn1r+n@{hrcB#8Ea1JI
zTQ&tmLatZpsFI6XDs81Q=2q~DCO
zlua!N)Q8Ux%OIl}Zj4SkRysQ$lcDTFlZIv;E!Zv4kjG)C%&Zw*G}2ioI+)AkEJk^9
zVrXboV5c%etdH%9NylwE_TVW2J!P4OV-Bk51&)Rji63ACZ
z3DPw>oX(P`UEwW{$;Ft4c7d7_Fek0t(xQeAf$Ea^(cGLFKp0&zl?McNY72>rQa#sUL;6)9mbqr&K=SmXc2IuB>
z`@HE)Sw_~rn6oYu+`eM2Q@KpWOvwtfqhqtSX)PPG8FM&oJIwl+Ky!&v=RYISiJU_{
z1~7^Yv6*V?{iBZMc&joM}
z=QX^n;}yIrP$|v1TSg3rg;?R_CXBf>v5}N;yge?f_<{}tv#c6b#f5bd*FZ;&C6G2J
zF@O{)yam=
zP)3(7&zjbh6aZB^oJ$#*X~Rm(aemV4ETl=amXBCovMeb!hBeRm+AS_c7Om|VmQ$kZ
zqViP`a)&H}P=W7F8>lSz(&imiSXUS7=G4U)L`Gd?jazL}mB>)$<+Zihkusz%Gg|Q3
za`@P?TY#)l>0m^?D$NC6)sbki+F}Vwt4}FUU^~k@_42;t}V4UT4bTCi=7tV2Y~SD{6!@z*N0v$?g3V8pYE+F!Y$
z3~%yVuN(#8MK$l{8U#^`9SGqD*L2qq-oo1)Rp1>o=A9g2E1mcv_fcOoCLezAZS`_v
z(SQ%{;yum_+{F8N1Ah~xpL1s-k$Vj79)fqVa}BK{ku~fc-9R|$`vZ}rr*kst?V4Oi
zXODLS(PX1HghL@5xr=Al@qCXj(&+2#T0^X((YJ;dI@T~$3}z2q0K18(mA?Yo5aHX~
zhkZD~=W-bPG0t~Q2HEEZl1Isq@Buz#m_ZESBdico9eVLGK7ofe_Ty80Mu2_f>2rLc
z*!vP+^^wM`e82hP`4i-n(2uF|50
z5API)a=daM$yK~2ad}k6TwI-K#sNkX#UUI-HxBbvI)Wkg&hT-SxLVyv3b-Z|2AQ=9
ze9hdJ;T!h7DC@3dpTA4;7;X@QOie?urJJOulDk%#R_eSfUF$G=e2uOh>X^-OC$94Xg$wx8@S5WmENF+m8
z2;ou)8GhH19quT`;qDrswc{#=dgY})A47;EnLWXlzY+4b&l97UQB`$p;7T&mNp$ua
zmW%RnjV4fuIb}5BZZ80G(FEh#%RnVgCwS`FC4>
Hg601LQ-Fkg
literal 0
HcmV?d00001
diff --git a/Tank game - Client/out/production/Gruppe-306-PCSS/test5$1.class b/Tank game - Client/out/production/Gruppe-306-PCSS/test5$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..c3855976fe9b8c6541fc2b7b8534afb9494f59d5
GIT binary patch
literal 583
zcmYjN+fLg+5Ivii*fAyq+5)|BYx9t#Qd1uKfIx^UY6U1oNT9qg&eCj^>>_(p_^nF4
zNPXxB^rH}GO(?bGotZOd&RqW9{Qd)A8;vSTD2E6V%%CC=I+eS3jV*zS8|u9AmQb(2
zc49=RhKLi)A`w{sBEQOu>y9*fESh!9Q9?UeLMvNKdC_VPN1>1
zL)oD;178p{kGx>n*ed~X#6G8XlBMdS_Sv|Y;*H;g-9DIfWOHpke^PE}2MIQ?DKM92
ziW7FNamqM>iNZbCQxnV^r21$vjs%bxOP)AnJ90WqKw4
zvsi?{BYJy`JrcKH|A1)!LinxVJmy;=2Y7}je3$N6w9AahFVwgfR`7JHwNG1SE^2>=
v_=&j(rMReGMToWk)S`cC5xYERb$}PFFJYBDFsfl4FAJoGSF|xXep-IFby8`MAFYVXw&B)rcyZ7ZnH3$YB9l1k3VK_|nzXXtIcbZ;
zhK@V(hSlAx)>Ie_dC}5Dqtid&%>VG_h`5a
z&A_p}V>@&OpC;$5*mmB~w5D9Mf>G%3x+`vIa;#+`%8;x1ju%9(f7ashFc_#XsT)~A
zF52_}2SG%J^oH;AuDGO3mTquRE*wy9XwzL#qOn0a4z;TlZM-(v)UFVHiW8zZAE19;L@urNbnJJnj->@euriR!-%eMSJ4VzQBT;VR=
zs$toF=9Ij%-6Jhng_bxHI#xs1p!=rh@8335buFJ}B4yJkYtYV$TC0vVXwwi4F|@o$
z*Xejbq)8>s+a=dDJX20ObgY+?mT70!9IBdTS)>o?*no{R?O(1EVV!a=Q{nB*kndXd
zWHv#qE*+cjFs*u~KkOQ|S229^3~!}!-6Nu~MaR}93S)BesE%#e&a0E*)d|O)_B3oy
zbuR{@seOs9W-7(6{T1ToOwkOBWlX15DYywAcG>!osIXt7GRm=t9
zKW_L_^u>3IM%g0eAli!8vpNRF(Rxf(I>gj-I-VCh%_YYZj>mPJSfWX?M{r8V3rf?o
zY|$LjF)SI3FvVv?Frs60Q7{(kZw~^eVP7iGzXmR0oh)WEXn~-t2b_xIvaD%#z$vr7
z))Xw;JTWspZo0#gWT`l(WK>2B*OGlGjQCR)3AYv+>p#oNzr^PnRt8tXrWfN}HLF#LtB6{O|H88uWtj9^cua&m{^Wj@oZSZ=Z!E*(P4ak)Jl-ac
zcNC9efOlVb^veGO6_-g&g^XMzRaE-ZH}J^s*fEx#$6CL}U5d}Hc4V9q7kl~is?AM2
z`5T^Y!f1MIo~aYMPd5?qfahHr)UZKXGH&;=wA^1%l|;P;e?r=VUukH58AHvO
XQ<1#HSt${{!nr8FXgKt_zJ|mGZ_ry!5
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
KRfpP-(*FWg8!a*b
literal 0
HcmV?d00001
diff --git a/Tank game - Client/src/Main.java b/Tank game - Client/src/Main.java
deleted file mode 100644
index e6b85021..00000000
--- a/Tank game - Client/src/Main.java
+++ /dev/null
@@ -1,54 +0,0 @@
-<<<<<<< HEAD
-import javafx.application.Application;
-import javafx.scene.Group;
-import javafx.scene.Scene;
-import javafx.scene.paint.Color;
-import javafx.scene.shape.Circle;
-import javafx.scene.shape.Rectangle;
-import javafx.scene.text.Font;
-import javafx.scene.text.Text;
-import javafx.stage.Stage;
-
-import java.awt.event.KeyEvent;
-import java.awt.event.MouseEvent;
-
-
-public class Main extends Application {
-
- public static void main(String[] args) {
- Application.launch(args);
-
-
- }
-
- int x = 25;
- int y = 25;
-
- @Override
- public void start(Stage stage) throws Exception {
- Group root = new Group();
- Scene scene = new Scene(root, 500, 500);
-
- stage.setTitle("Welcome to JavaFX!");
- stage.setScene(scene);
- stage.sizeToScene();
- stage.show();
-
- Rectangle r = new Rectangle(x, y, 250, 250);
- r.setFill(Color.AQUA);
-
- root.getChildren().add(r);
-
- scene.addEventFilter(KeyEvent.ANY, keyEvent -> {
- System.out.println(keyEvent);
- });
- }
-=======
-public class Main {
- public static void main(String[] args) {
-
- }
-
->>>>>>> master
-
-}
diff --git a/Tank game - Client/src/Projectile.java b/Tank game - Client/src/Projectile.java
index 701549df..51ae0365 100644
--- a/Tank game - Client/src/Projectile.java
+++ b/Tank game - Client/src/Projectile.java
@@ -1,129 +1,42 @@
//package sample;
import javafx.scene.shape.Circle;
-public class Projectile {
+public class Projectile extends Circle {
final static int MAX_SPEED = 10;
- final static int[] BULLET_COLOR = {20,20,20};
-
- private Tank player = new Tank();
- private Tank[] enemies;
+ final static int[] BULLET_COLOR = {20, 20, 20};
+ static final int HITBOX_RADIUS = 5;
+ private Tank player;
+ private Circle c = new Circle();
private int xPos;
private int yPos;
private int xSpeed;
private int ySpeed;
- private int direction;
private int hitboxRadius;
private boolean hit = false;
- static final int HITBOX_RADIUS = 5;
-
-
- private Circle hitboxCircle;
-
-
- Projectile(){}
- Projectile(Tank player_, Tank[] enemies_, int xPos_, int yPos){
- setPlayer(player_);
- setEnemies(enemies_);
- hitbox(xPos_, yPos);
- }
-
-
-
-
-
- public void hitbox(int x, int y){
- this.hitboxCircle = new Circle(getxPos(),getyPos(),this.HITBOX_RADIUS);
+ Projectile(Tank tank){
+ create();
+ setSpeed(tank);
}
- public void updateHitbox(int x, int y){
- this.hitboxCircle.setCenterX(this.hitboxCircle.getCenterX() + getxSpeed());
- this.hitboxCircle.setCenterY(this.hitboxCircle.getCenterY() + getySpeed());
- }
-
-
-
-
- /* public boolean move(){
- setxPos(getxPos() + getxSpeed());
- setyPos(getyPos() + getySpeed());
-
- if (getxPos() == getEnemies().getXpos){
- this.hit = true;
- return true;
- }
- return false;
- }
- */
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- public void setPlayer(Tank player) {
- this.player = player;
+ void create(){
+ this.c = new Circle(tank.getX()+Math.cos(tank.getAngle())*5., tank.getY()+Math.sin(tank.getAngel())*5, HITBOX_RADIUS);
}
- public void setEnemies(Tank[] enemies) {
- this.enemies = enemies;
+ void setSpeed(Tank tank){
+ xSpeed = MAX_SPEED * Math.cos(tank.getAngle());
+ ySpeed = MAX_SPEED * Math.sin(tank.getAngle());
}
+ void moveBullet() {
- public Tank[] getEnemies() {
- return enemies;
}
- public void setxPos(int xPos) {
- this.xPos = xPos;
- }
- public int getxPos() {
- return xPos;
- }
- public void setyPos(int yPos) {
- this.yPos = yPos;
- }
- public int getyPos() {
- return yPos;
- }
- public void setDirection(int direction) {
- this.direction = direction;
- }
- public int getDirection() {
- return direction;
- }
+ private Circle hitboxCircle;
- public void setxSpeed(int xSpeed) {
- this.xSpeed = xSpeed;
- }
- public int getxSpeed() {
- return xSpeed;
- }
- public void setySpeed(int ySpeed) {
- this.ySpeed = ySpeed;
- }
- public int getySpeed() {
- return ySpeed;
- }
}
From 282ebe8ad2f23b26a9b95102f85f45c19ee8a66f Mon Sep 17 00:00:00 2001
From: signetoftgaard <56248226+signetoftgaard@users.noreply.github.com>
Date: Mon, 12 Oct 2020 14:40:12 +0200
Subject: [PATCH 24/73] tank class
---
Tank game - Client/.idea/workspace.xml | 21 ++++---
.../Tank game - Client/Sprite.class | Bin 0 -> 2036 bytes
.../production/Tank game - Client/Tank.class | Bin 756 -> 2030 bytes
.../Tank game - Client/test5$Sprite.class | Bin 2117 -> 0 bytes
.../production/Tank game - Client/test5.class | Bin 6362 -> 6340 bytes
Tank game - Client/src/Sprite.java | 54 +++++++++++++++++
Tank game - Client/src/Tank.java | 56 ++++++++++++------
Tank game - Client/src/test5.java | 9 +--
8 files changed, 111 insertions(+), 29 deletions(-)
create mode 100644 Tank game - Client/out/production/Tank game - Client/Sprite.class
delete mode 100644 Tank game - Client/out/production/Tank game - Client/test5$Sprite.class
create mode 100644 Tank game - Client/src/Sprite.java
diff --git a/Tank game - Client/.idea/workspace.xml b/Tank game - Client/.idea/workspace.xml
index e0850564..c0887174 100644
--- a/Tank game - Client/.idea/workspace.xml
+++ b/Tank game - Client/.idea/workspace.xml
@@ -2,7 +2,12 @@
+
+
+
+
+
@@ -132,22 +137,22 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
diff --git a/Tank game - Client/out/production/Tank game - Client/Sprite.class b/Tank game - Client/out/production/Tank game - Client/Sprite.class
new file mode 100644
index 0000000000000000000000000000000000000000..dff74648c27e3a308c0d29f0e9f8774e6a2d5bcc
GIT binary patch
literal 2036
zcmb7EX;T|V5Pb_ekXSGfaDo8?i2-SCSrEwK$i^HBL5XY}LAY{xkrrt|XqD9h_AlVi
z`YJ3yng+<_2*x2{s3?XZX9iBk0PWajEIKe1M|e(
zf0Aw#t(ui?RLr`SE?7m+td*;lhR9vJW_$A*Mibd={w?3SY1h2;BbhVF%@{fmiz2S0
z6FTp$*InD=1EG>-mNaO);?S+*3VJkzgV(j3So?ImC)O@y&DDyoWi~818PIW6PGU#S
ziM3w0tddwi&@qT>eA;_jCqkbJD_!O7^t$KTwQ?p-uVEb{xXxD_mbc-WwMNzStZm*(
zWRsiXFs5VtlEaRie5B(BCU~_RT-|rvqlSiwM6#KJqEoFhOSV&Mq}TQumV09ERjs_;
z@G?Bk6+UF$@7o>M(GV@eqVzwI`BUF{gCg7IO#9TXxB-L>8!<{K@IZ
zI%b=fRH&cm_*4ury02Pxx#Gn!iO)scJ5+(9k!>e3xEsYi9rL)aVLXWK-5eN>S)ytK
zi3_=1+dClROma7lMJz?JtRssrHFV2!e)=DnUWKuEPQfhMr0i!~@%l=~ss!4~sggsU
z`dY^~@=klvX$Z#$Iv!r~B-uqg(($eGY}hsNT-UK73Wg~0wiq^bY&8u#8fFtY{#~FD
zlt)uUzvlfqUUsUE%R1(3%T9@9btP}ttcS-(dzQN)+Df50MYFnTy0+{CW5}!6*E#Ivb3SE_@NkJPZ!8!u
z@Zs;6+%cY^*E{1b!Evh}X{X4=49A?>yu@d(@kJZ9jGbpBD&CLD_?%O>!tcin+1%$Z
zoW!pC7_Hd%Tln<=f1Us>{Qm|2Pw0b~Cg*$1~C
z{by6JkUK1jXf)-UrZq8LP_R$s_&PNk#W2Q@rgnmPRp~JuV8*Cs1-8nLWEI#B;(jp;#sY;sr6yG);>5cjq$u#0{3yO*Y6a
z{-+f5m`Z4>mFyIbRGCJC6toe(1}6w2&99VSm@r+xa^d$yL>Z?qs22_%)KFJmzx)kZ
CCy9>$
literal 0
HcmV?d00001
diff --git a/Tank game - Client/out/production/Tank game - Client/Tank.class b/Tank game - Client/out/production/Tank game - Client/Tank.class
index c472fb6d39fa81f74a6095e7a3a507907819f3fe..23de16ca5b913bfcd83c10af0d548b72a20465ba 100644
GIT binary patch
literal 2030
zcmb7EX;T|V5Pb_ekXSGfaDo8?i2+HrEC}RqWMdA6phPx~AY8e;NQ<-}c9qov_AlVi
zr!#)+~2
zB-1FFwwY;Ejk=jBnkCP$D>YL?_ZM^(!*0|J&)nvzL@v20
z24gzLFB$B}&PO_KV1h?0!O?xkJ!)u}NFPjVv&0@{`?hYny;ExrRv2oiO(gqcbGe-jA}cP#oZ|G>6piT4da1t@76$fj54z}khl=r
zwY>u>&L(%`Sj18k%Q|xSQbV^~=ZF7+;Z^C2=M;^yMah1&m9DRJtcs(pn5uNhRbT7)
zM($}ZIStYHK*z&NmK3{)M>@V$mJQ1m%XJ+alEDyDye+_{j;$uJqhU6Y=kJ1qpgfvM
z^ef)4;$^4ixU6E{w(OKyR#ys^Z9Y6c+B4k^$*mNcQ!;9shHJ?>07G8YqRvP`%00_M
zf5P^Z?Uaqd2s6r#tKr(aNj1b>RTc$v-&2)9FFJjwC@JMi9>9v@o*FLG5>XGONP?UO
zUAC5t(xJZ>SIc8oCy#{^c~RusFZo5a=s#=LTb{)0&aqoES1i#N6A8B^n|v4@{78UR
z1bNNu+vMe{k#ALve3=}3QsgbjR(Ai+*CA3ugb3~=?aXp-$f51nSEPnzf~dhtE2
zR((GFfFHR6=I|4DH8uO0Gf^{#$DFmRnZa2|&BTAvIfp%z$OM#O20C1_%N+};7x?gZ
zOzxzfq1QX(D#3QE9~q~_$qd_^TD-((ukl42wo*IKC{(N;Q}MZ`ZpGh^8LGL@ubcR;
z`y4Ib_gnn+fPbC@E&l&S|4;0Ln5O1?jO97|e2cwufjz3cou-bivsYMHP0^1PuKLfW
zULk*2lB5wTG@&(tE@ZGz#rQgNHi}`4A;a7W=T()D>3}oFY*t~ZC>;EE_R3{;LYLTY
zkbQ#elVqRz7xqKcg3O7%;oqI7*%zK-Io;#~xy654
zQIDyBrdz>I<4BchBnUwp>1{ZH6B&+Deqqvd{mO~|E+Pt?zL33eaG{2}vijw3@0^Ct
literal 756
zcmZ`$%Syvg5Iwg|6I-LL??-*>LMzy-Pm2Y?-{B@jW>f?*>DQz3Qhw%u&itzBnN%eP*osbKE;HNTlt
zh^}vx;ut{OLc+!%Yz3p}*6zsM_$*YH!VcR=B1P)qENBpP1RS+77J`o<7`t!|ig`-s
z51r$Dk;VJLm8Xy__%-jObzk=CMYmifGFk{KZnfmreaSnZ(Y)~~Z5G6RS7G2jXp@sk
ztcKUr#>Tp{QPO}mwXT0CF5-}3u9?Jn(5hFwBVQcjBD5uEz%nO~@Jum&xf5RzS%Wcw
z@lKowBjg;!O(?k|zmv?iS+Arz^9GfPzQTHD7QvKYj38^Uewr^^S7HXU%z$)PWs{kx
zs9v)eh-I%)bs81sFi%$ObF>f>Gn0PBP_J8CCuy7t6()66*V+u1<*&m+f31CR&SF>dci5bDlNxf}tl4s4t?In)~5-{z6O&FQ|)E1|{eH*gD7WdHyG
diff --git a/Tank game - Client/out/production/Tank game - Client/test5$Sprite.class b/Tank game - Client/out/production/Tank game - Client/test5$Sprite.class
deleted file mode 100644
index f8e34a4f06e8368c745773641b4d4b0014d34827..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 2117
zcmb7E`%fHI6#iz}2P^}n2vrJLsx9oUr3;p-bz90yWR*e%Kt9>1e}gKJD*Sh|sKp%a(aNJL|iaUCJft)uE#k
zPxDpJ^ygf|_R5BDF7j4tEIls{T{_Mlb6Ap-XLX#zd0s7rS63Z()6;N1l|D>F!6}!S
zE6cIH?DUFfy4%J|*_^aIKbJs{hR#P4<_o?&lAUpUh9Mwn9T_~wcnHF6LXd&ZU==7{*8fqdLa$iiSpcE=d0k!(U@8zB6MK
zEm97$t$4kvV?qKw%Bhk=o_bBk>+()b!SRIS4INX*JV|yKH+8(BJUz=6&siOFqF|H~
zFN$Ga$HJjuNyDX7p1zVR;;i7*u{x&7)4)aaqlLZPY2UtWHc?wmG%6xnjC=qOBB~
zQ!vW&hHJ?_G)Db3i#!`AtIIyeg5TxXZbuh2h_F;+9Q-rj
zHzEzMX12JR+0dMuq=h*rIAU0Yh9#~ZAg(L}na=&z=zd%L9<)r&0TS|Q$TTGna8i9+
zGHtN~Jeg_Vzl-)v2ft^2<^2ej`Rzs>zdMYeLY&)Zg^PB0?Dk#sU=O``pI!6;-lEq;
zfQPs74tKx+-sK%lt={8G*bLwnS2b#7a1~W6iC=gQUdur-;{W
Sc8bg%wm2v0U(5A2l79nHH>g$s
diff --git a/Tank game - Client/out/production/Tank game - Client/test5.class b/Tank game - Client/out/production/Tank game - Client/test5.class
index e550801d67fc1bd039277371bc783302f9fca8c8..beec88908a8f698c6a170f72de8d96ec7dea1bea 100644
GIT binary patch
delta 2727
zcmaJ@3wTsl5&q}y?!CKrPd1wkc_$E(6!L}QChWX)mon|QgF__3-tT^zTR*5o^$5R
znSbV=IkWp>_33K!*~=480hmi&`^+;g=c;i3mVM_R)%B2?9T}skG~2*Jg5EYb)EkSq
z(M)hf`XhZiJjlmlfh8y;I9i*VOaxKn#Vjln2w}NAr&Z`H1XkiUX*epqZCGXCc7fGc
zBO4r@-ga~txKm&)I^|=IrS3MY7ubNXe8Vw6e*e;7*wfYW$ow!G?b>-&0
zOW@tOhv42EiLL4Fj`f(x!g~bX%lrFWlk(pu@P4)L;r%6%-pxHR4=d~z_y9gApK%rH
z_Y3U7hvh4-#c6v59#GM{f}zHR%M9$3^Yt8E3VaL?%5{3>j4^y%z=cl`vP(lMo=taG
z4R2)js#b=FBK@&>Wvc^l;*$cO!l&hNy~aI;&kB4F56jo}dhY=|V&GAMFW@m*ZQPu5
z0ACdN5_E!dxMyIyqU0+AkK+ls+bHoK#32Ju3LM4}dCZvWJBEaT;{qozPRNt%M4rrY
z&+wka*9?4J;3+&USGcQ3pAqCgqcPx3|
zz_!SufuZf;p>8FAR^WR|E|feN-nhly@ZtvoKg4rP61zMQV`59K(&ErPTrkfU3H%5@
z=7_o@;cfzTDCuq!=kQYlKNI*lyIJBXZ1@GcVwGLjNHiK@SI*&A0_Rc3r5V{e5{?eL
z@f(I8jD~kahOR0F@shyH_^sUKsr6^!B@?gU4+j1y@F%<~PkEX`D!b3C0RAfQ8lJWb
zqp^Q;G@|PHb%DR*A54xFm4(c%mbR3w_M!{R0-W5fUbNvq0&n0=xy)=y`>(3ZON8mA
zA^Xb62b@zKZRnHFnOi;Xq;Q^W@D@?N413e%POqd)=@YNkdas^gc9^lSa)Xc>4fl0*
zhf78VyE#E6HH7qQdLdb!QsCfoa%IY7Dv$#ynQ~7`vu~D3)l_3pt)M!pKXN|BNi;{k
z?5j+h%Vk412`ZybWCrDj2sX^NkwuwaQvEwt1i
zzTkT(B>PiO`)(x|WV7w3m2!cU88&Dg;RdE7Xz(7?c!kwJqt$g}?SbXm?yYoRN0XIgGP
zao2)?8g3*ajYmygJeFLRhb*;=X_Fa%pG@Amu2z8*a*&f1H8euE4m1QZvxDvajy!*N
z&xSNSMaR)1qk+7RE0!4-zo)~EQWT>M)jXer3JanT4wm`IMLL_+P)`QZ
z-|ii``K$-pC1`XJb*#d@jNg~#g+RvWQo;mo1;){;@r}J>9P2ckLf0Waq(OlzKY^JR
zm>qVJ9X5HC4w?M*+R^ZO6`xY7Mdb-}mrtNanT~2GKMFH}iU|xVK}^G%C)Mdu3&O`S
z05wSEral#+|A%6ue3unrtQTh<6d%p*TigvN5p1tW;O@Qrx_7TDx`D@0wb-Q=`2`h6
zao+?!1ny2BVM=duCLPIfj-yJ0+jaw2>k8RzgLYm4e7hG0Ch@;{*S8N+(hBS-eINN$*xz@lL_=)Vy
z%nQ7jz%TbB-O&(-uQKp!Udj72i(4<)vHUK9-|xo)wQwH8pDXxvHjY{L=3izzD>9r3
z{7qH*IR2?F(!W%3|65aaeo;-|(r}fIE1A=-=XMuLsDvxX$u7sQ5fisvw}|mWe+wlB
z&QXe)Tlgj_nILXkNrJjK9z{?NV_)DjU9cQYu^cQ{UM5jlMg7hL^WnpSQATV;w)$7a
zk4;>Tg{js#TBtvzw`b8m(E7
x7SbYG%z-So)+^{XT4nFdq}%C^q>nV(!{{gC(67>K8
delta 2912
zcmZuz3t&`N5k0fNw|RTB*(@YWK0qK#O|pTIUj+hzBzzJGG$bi0v=J8aNCKNp$Syx^
z8;aFh6OkxN+c_!(MOmm6Bt7Xd2CMqk-Tw
zqDJ5DG~{E6z)}&hpS6Wt%>pa2O1kZ(o))au&??Y|cDc~r=~;sg
z4L1m^#X6a=FL$@#CV@`8PmbCb=5HW)w}f|u%eKdRBW2CKvA7NoHVSM)muzwnyhld>w+P&-gy}479}Guhk#O8tt9JGX+@^NYc&E|m?e2-EvGjuix8p+uM|}5y
zLGU-5SR>(RcUfC}us7OWuKokGTeBUftm%paeE|UFwpb(rNDEjBDjog+ryEV8!s@pfk=3_G5C&B051v$eubCh
zp0rBuZ}3|UzZ3X9{y@l<7t^xk3u&QcD!4xh{8@oeRaO`6ju=Y#vcO;QHzv-E*!0Wr
zi<*kpc(5Lge$IH*gBJWl;1#?o+w`Wuzf_sOMwodu2l8&mGDLb8$~QQn^5?!QeDMF*A!pvK;D&J>n+l$m`XGX2`Z(T$DU7j5S7W7yrr4tT$)rN
zxW`QQsc*HMoRL@gUL~C)C=cg+>RXlJqWMa;Ku~}t`DhXg7U@(+^%^zsrK81iYsMMx
zQi4WS>U`8F7x*TxSgww(5Hx`%`e-5_Tcrfo37Sd;J}O{As}i&cnoLtT{Y}xRG1w3Z
z$6`i|E5mAw8g&q6$fq&_^1%$ROQW@fDdzG;-x7LV1~Z#zR7Nv%^KqFws{rwH4*r8T
zc(kcY&XU*VVN>m5=9G3*Et|K-)j~+en|O;AZK#7w9pK%2;O4%tK~1<487Y)$
zu)P5rT}BnFaIfX3^4rX#+MZr=9C{L=VJstzUuflQ>xXfp4X3gGA=a{Cl%EPS
zFbkK5c(6E_ZgD^=P#f9#=NJpEeauA?;gS&;%66{}DUT!QQ-W!~v#rfPUh4>DIg3ey-d2@ASOj1R6i5!7&=()HYeQIs-4+{#h}
zZRB_qK{@RE0;kCWnr;FtQ7BVhSw;PS0W9Q>v1o`r)?pGFt{^VQ^vN2?VL20Ldbfky
zv96kF%Asl_DqlLszSm#RJdJ0>Y7n(oRF+OzYzl0FUjQi!WuPI`gi|H;|FjpjZgm%D
zDwhr_WSNbEG=oRgFpu!dx0={87V{h7J+RX(noX7FtctFsx#nyh)le-ht)nL
r&1yD>=Fv)ONvW@9^>#Kjoe2u?yW)E2sOGi$sNmpp(;B*g)*
Date: Tue, 13 Oct 2020 10:49:10 +0200
Subject: [PATCH 25/73] test setup af server. ikke funktionelt.
---
Server/src/com/company/WorkerRunnable.java | 10 ++++++----
ServerTestClient/src/com/company/ServerTestClient.java | 9 +++++----
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/Server/src/com/company/WorkerRunnable.java b/Server/src/com/company/WorkerRunnable.java
index b2426ec9..960c95ea 100644
--- a/Server/src/com/company/WorkerRunnable.java
+++ b/Server/src/com/company/WorkerRunnable.java
@@ -34,16 +34,18 @@ public void run() {
// input and output streams
DataInputStream isFromClient = new DataInputStream(connectToClient.getInputStream());
DataOutputStream isToClient = new DataOutputStream(connectToClient.getOutputStream());
+ ObjectInputStream objectFromClient = new ObjectInputStream(connectToClient.getInputStream());
+ ObjectOutputStream objectToClient = new ObjectOutputStream(connectToClient.getOutputStream());
while (true) {
// Calculations made by server
- double testData = isFromClient.readDouble();
- testData += 1;
+ String testScanner = objectFromClient.readString();
- //send back to client
+ String testData = testScanner;
- isToClient.writeDouble(testData);
+ //send back to client
+ isToClient.writeUTF(testData);
}
diff --git a/ServerTestClient/src/com/company/ServerTestClient.java b/ServerTestClient/src/com/company/ServerTestClient.java
index 24ef66e9..9247895c 100644
--- a/ServerTestClient/src/com/company/ServerTestClient.java
+++ b/ServerTestClient/src/com/company/ServerTestClient.java
@@ -22,14 +22,15 @@ public static void main(String[] args) {
System.out.println("Connection to server established ");
toServer = new DataOutputStream(socket.getOutputStream());
fromServer = new DataInputStream(socket.getInputStream());
+ objectToServer = new ObjectInputStream(socket.getInputStream());
+ objectFromServer = new ObjectOutputStream(socket.getOutputStream());
while (Continue == true) {
- double testData = 1;
- System.out.println(testData);
- toServer.writeDouble(testData);
+ Scanner testScanner = new Scanner();
+ objectToServer.writeUTF(testScanner);
- testData = fromServer.readDouble();
+ testData = objectFromServer.readString();
System.out.println(testData);
}
From b979905b88dfbb876678e082fe4e01c1ef2cf988 Mon Sep 17 00:00:00 2001
From: AtleNyhus <55181788+AtleNyhus@users.noreply.github.com>
Date: Thu, 15 Oct 2020 11:20:50 +0200
Subject: [PATCH 26/73] Update workspace.xml
---
.idea/workspace.xml | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 10d0b78d..aece6fba 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -3,8 +3,6 @@
-
-
@@ -78,7 +76,7 @@
-
+
@@ -110,22 +108,22 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
From 67e08666d73fa23cfe2fda91be56930b97dadc5a Mon Sep 17 00:00:00 2001
From: signetoftgaard <56248226+signetoftgaard@users.noreply.github.com>
Date: Fri, 16 Oct 2020 10:40:06 +0200
Subject: [PATCH 27/73] commit
commit
---
Tank game - Client/.idea/libraries/lib.xml | 11 --
.../.idea/libraries/openjfx_11_0.xml | 9 ++
Tank game - Client/.idea/uiDesigner.xml | 124 +++++++++++++++
Tank game - Client/.idea/workspace.xml | 98 +++++++-----
Tank game - Client/Tank game - Client.iml | 1 +
.../Tank game - Client/Game$1.class | Bin 0 -> 649 bytes
.../{test5$2.class => Game$2.class} | Bin 787 -> 784 bytes
.../production/Tank game - Client/Game.class | Bin 0 -> 4389 bytes
.../production/Tank game - Client/Main.class | Bin 355 -> 0 bytes
.../production/Tank game - Client/Map.class | Bin 928 -> 732 bytes
.../production/Tank game - Client/Map2.class | Bin 0 -> 727 bytes
.../Tank game - Client/Projectile.class | Bin 2637 -> 1991 bytes
.../Tank game - Client/Sprite.class | Bin 2036 -> 0 bytes
.../production/Tank game - Client/TODO list | 23 +++
.../production/Tank game - Client/Tank.class | Bin 2030 -> 2326 bytes
.../Tank game - Client/Test2$1.class | Bin 1881 -> 0 bytes
.../Tank game - Client/Test2$2.class | Bin 787 -> 0 bytes
.../production/Tank game - Client/Test2.class | Bin 2872 -> 0 bytes
.../Tank game - Client/test5$1.class | Bin 583 -> 0 bytes
.../production/Tank game - Client/test5.class | Bin 6340 -> 0 bytes
.../out/production/Tank game - Client/update | 29 ++++
Tank game - Client/src/Game.java | 146 ++++++++++++++++++
Tank game - Client/src/Map.java | 28 ++--
Tank game - Client/src/Projectile.java | 67 +++++---
Tank game - Client/src/Sprite.java | 54 -------
Tank game - Client/src/TODO list | 23 +++
Tank game - Client/src/Tank.java | 35 +++--
Tank game - Client/src/Test2.java | 101 ------------
Tank game - Client/src/test5.java | 110 ++++---------
Tank game - Client/src/update | 29 ++++
30 files changed, 554 insertions(+), 334 deletions(-)
create mode 100644 Tank game - Client/.idea/libraries/openjfx_11_0.xml
create mode 100644 Tank game - Client/.idea/uiDesigner.xml
create mode 100644 Tank game - Client/out/production/Tank game - Client/Game$1.class
rename Tank game - Client/out/production/Tank game - Client/{test5$2.class => Game$2.class} (67%)
create mode 100644 Tank game - Client/out/production/Tank game - Client/Game.class
delete mode 100644 Tank game - Client/out/production/Tank game - Client/Main.class
create mode 100644 Tank game - Client/out/production/Tank game - Client/Map2.class
delete mode 100644 Tank game - Client/out/production/Tank game - Client/Sprite.class
create mode 100644 Tank game - Client/out/production/Tank game - Client/TODO list
delete mode 100644 Tank game - Client/out/production/Tank game - Client/Test2$1.class
delete mode 100644 Tank game - Client/out/production/Tank game - Client/Test2$2.class
delete mode 100644 Tank game - Client/out/production/Tank game - Client/Test2.class
delete mode 100644 Tank game - Client/out/production/Tank game - Client/test5$1.class
delete mode 100644 Tank game - Client/out/production/Tank game - Client/test5.class
create mode 100644 Tank game - Client/out/production/Tank game - Client/update
create mode 100644 Tank game - Client/src/Game.java
delete mode 100644 Tank game - Client/src/Sprite.java
create mode 100644 Tank game - Client/src/TODO list
delete mode 100644 Tank game - Client/src/Test2.java
create mode 100644 Tank game - Client/src/update
diff --git a/Tank game - Client/.idea/libraries/lib.xml b/Tank game - Client/.idea/libraries/lib.xml
index 87c8ef4b..2fa94bd7 100644
--- a/Tank game - Client/.idea/libraries/lib.xml
+++ b/Tank game - Client/.idea/libraries/lib.xml
@@ -1,16 +1,6 @@
-<<<<<<< HEAD
-
-
-
-
-
-
-
-
-=======
@@ -19,6 +9,5 @@
->>>>>>> master
\ No newline at end of file
diff --git a/Tank game - Client/.idea/libraries/openjfx_11_0.xml b/Tank game - Client/.idea/libraries/openjfx_11_0.xml
new file mode 100644
index 00000000..3f010f20
--- /dev/null
+++ b/Tank game - Client/.idea/libraries/openjfx_11_0.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tank game - Client/.idea/uiDesigner.xml b/Tank game - Client/.idea/uiDesigner.xml
new file mode 100644
index 00000000..e96534fb
--- /dev/null
+++ b/Tank game - Client/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/Tank game - Client/.idea/workspace.xml b/Tank game - Client/.idea/workspace.xml
index c0887174..09c7a2be 100644
--- a/Tank game - Client/.idea/workspace.xml
+++ b/Tank game - Client/.idea/workspace.xml
@@ -2,12 +2,30 @@
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
@@ -38,8 +56,8 @@
-
-
+
+
@@ -49,7 +67,14 @@
-
+
+
+
+
+
+
+
+
@@ -71,13 +96,6 @@
-
-
-
-
-
-
-
@@ -87,11 +105,11 @@
+
-
@@ -121,6 +139,10 @@
+
+
+
+
@@ -129,50 +151,54 @@
+
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
@@ -181,9 +207,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/Tank game - Client/Tank game - Client.iml b/Tank game - Client/Tank game - Client.iml
index fb8e8667..443d7b43 100644
--- a/Tank game - Client/Tank game - Client.iml
+++ b/Tank game - Client/Tank game - Client.iml
@@ -7,6 +7,7 @@
+
\ No newline at end of file
diff --git a/Tank game - Client/out/production/Tank game - Client/Game$1.class b/Tank game - Client/out/production/Tank game - Client/Game$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..11d063aa68f9cbfe2ba8ab960dfb0416e2bcad77
GIT binary patch
literal 649
zcmYjO*>2N76g`ueICkAMxX`kfB~ZtOhVq7rDxrw2N+Tqyyic8h42s8*?Et@p)E0>c
zK7fxxoN>ZpX=d(n&bjyc{`~d*2Y{z|QQ&(qlGmW?En`o+p&^_
z%x7a+Dv!za0GDu?;8f0R%_BK`!kU}7;^Jz6YZc1|1^gseWGx&oTC~?4QMI3qsk%1M
zMh)lbiOP@V$&`_BkR@_DlDW42GU(U=1)3GVv$xNx6KTd4??i`IuWqu>0^*P*-(~YW
zQ7^U4dbaspJ3ni^Fv&D4wE1wP%1Jg3&_yh;x@fVVnNpcjU^D6tmOrdWlu^C6GG~G{
zn?qHUud{-n;EgdV?@wh>r~(T!+97S_kxP#E*B*AmVRuzgC!=
zyc@&-+qlJhV}ZgJ747F&Y8(r9aCfOS0Upr~9{>OV
delta 45
tcmbQhHkoZg9vgc}YH^9_#^OLmHZCx8@<~P+HdYAp72^fQ$jQ5zLIG6O4{-nh
diff --git a/Tank game - Client/out/production/Tank game - Client/Game.class b/Tank game - Client/out/production/Tank game - Client/Game.class
new file mode 100644
index 0000000000000000000000000000000000000000..df3b5aa1302e91998f7718e08a5a9f48c3a49fd5
GIT binary patch
literal 4389
zcma)9d3;n?75-kf7lsF!0A+`=4DDoChJa8YP=P>bWWtuP1X}CM%uD9MWZv}6OIW(t
z3N6|emAbWRtwn7rZWKu<&{ounT5DZ#-|N0x^&fw3-??wrl=?H1`|iEx-gD16-&x*$
z&;9%SGXR$3?*UYxQb(16YSd_$zSrzGyAMRoOeST=P0x1H(KW@fhMJXj+V-y3P#JF6
zF#@$1p(9{mBn%Bz8_ZsdUCQeAG-$hJd9;B#S*v#Ko}?#~dIMvGqIWy)e$!0|ZJdFt
zgjU;S#`g(P#{>-%bIN4nR@#cD%!5v!7u{l}tpLWOQurntn1ZPk={gQYPL912N0aQH
zZs2Onpf3CEgqNg-twNn;V75?el9s5bV-C;jFw^^LaV_^Wjz9w7Ho2=i2F>rg9rfxqZMF8CZ;0
zQQr&^u_(4CCfYXDVky;KB-P0xWs`xG!lnCM+*XV04ZIqwiHAr2
zEZ6qqEpLl!
zb+_Ax7!TFqb?X{-$oggjTdV|_ZtlujZok=;
zvSN1DYZ{4mbm-V_U&0TwWepAD49i3EN0yfkbz%J|&
zD{s^=A{-N9lPLUJ+^pku229C}tMi$WwtI7Vkso!~z2b-JtY^9^#N!4MpyeYot|Rj7
zltp+)?TKwE%!yYIk~(Yyd$CVLpt!_IuhVa>?IRWp>e{dXtQ6`&uYoiiswsBcSpub@
zE}ZjQgYP~$`4$5%C{vJ*+1*w)V{#{RwpDQKGte&}*0`2PlBhgj;Gmcpa2?O|tQb>R
z$hR7}O~@mC@;1p3q2FQP^@=Y1Eq)>k{VoG<5W1l(C?xX{4P(kuvt3d;z!<#8z)`%B
z;KW^va+{sBXQgTNgkn(m>A%Hfuy};+Fzyv!-N#h)J9I@9Nch(oiJpnes5S_3$R
zCv==P@JXD}Fr_RE)b=R1D_~iHq%bJX>BIeB*edJ9eh6oEJZa#Zg!$wvpXwi_J8r^G
zn<Mm%e_&3yKf^m@`sF>prFx$%93HYcRS
zvqj(2vwp>qFc_B?#|o4W4oaw2J}F&RFH%1;nCj~f#I1}fwmQD5VQet~3M&Mpm#;W>
zrrSeH$6g^!m}4okw<}?WDBkr#jT&YQ3&w);l%JLE8ebhoIrbV&nN~1G={k&YxG26x
z1MN(+1Hox-|A)A
zRg!OIj2#CvR_XTtf6*8Dzj^&vZJEB!W-8Tgdsb5rzbdUGC1r~qtJCotDILEx@I71(
z;xY+;5W*h~d=r=H%+_?;a+^~oi&s|1UsxqxhUb-_(ec;Zy|YZKvaOP03P;SO#0pky
zgN^T4J|UM+)$^jMdR{M8&nqSS3b`VxIWK>z=XH;LgM+X&KOa@~s#9LIJ%
zh@E(Z_u0p=oA2yBID?xMgb{{D1(twd5Vlpk_{&HfJeY&E35W1`wfY58Cm`@oRA>wS
zf$D#uTGN(sFp7UbdH!+gmF9PW$^;qJ3|Q=1@0>+c^#*SyGiycK*^zg$VhQWzq@cJQOG8nrkH%^;9%;n(=aX&Njn9_fSa_*9xuAn8);Y(D;;OEZs
z_%aoGfeKZT@)d^1*YG$;qT*uqlDE~7C-I@8NcrsLwT}!Bl;lA*zK(AI!3wEpxdUF}
zPKhh`G(JqVKQV;C1t&T0W>W{VpUKw1*2uP;ZB3+#1!4fJr5`nbWzq)+uu%H30|@&N
zoiD@c66#5o@S5i*O))4|FrR@wet_<$i~|Ja5ary;FS^_Lfp!P;@Mr5)n(TGY(b`4^)7Eb%$}2go55iguh|Ze*saaHiQ5G
literal 0
HcmV?d00001
diff --git a/Tank game - Client/out/production/Tank game - Client/Main.class b/Tank game - Client/out/production/Tank game - Client/Main.class
deleted file mode 100644
index 8553bff78e1b83abdfbe889ef5633cf6e53a0e5a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 355
zcmZut!AiqG6r7i)jfvH2E8e}e3g#>=UIb5350zXzZQ>HQq#IaM|I3r$!4L4G#Mvk)
z;=<1G-kX`n?)%5<8-Oz$BnZ%p5DwADK(Mz`Pb#gIt7u#Uf>CCyzTT`0?QT_3vop?`Qq{R~#@FA?uzfI(Ov}7^PWQSCIh@{QKRcJL
zGq#$~a?X{jsGs~Z79`7N<4S#L{JPjDp860RA>w=d2_XJO#F$k|7IOdi1@hdD6QUo3
kcbho;5|DRT#n{D&9dADAG}QeyhQEybI_!7CF)_g86PN%!;s5{u
diff --git a/Tank game - Client/out/production/Tank game - Client/Map.class b/Tank game - Client/out/production/Tank game - Client/Map.class
index ddb7f1f394047a2e8f09cb043db9abe1f5a59197..115889907f03e0b1e244ebf6ff6a5615bed0e892 100644
GIT binary patch
literal 732
zcmZ`%+iuf95IyT$oTP43LV=KmrnFoV12sINRtOXXL<&5VDv-ymv(!e$4zUB}3-}&D
zDiRNT03U@olay8!!jgAq&Rou!v48#k@e{y(+^fJs&PLur0Y!!8Tm3=5IrLKB#Kubl
zJvQF1@iQGCL`I>w6UJfoKq1%e3~ZEWJlEsm!y%jTslbNgU=d3S<~x)IvVInDE={+&w?-|O`j{<=H2e~Is?)i^8Lh}
z?D)~~b}KKF>BKirLg`gv`j!lUs}yTdLJoCNOsh_80}7k8EnK62{fsYy`CXZDgO0`c8iiB!
L1$rJa3wQqj(cO9h
literal 928
zcmZuw+fEZv6kUg28HN^GD58QOYOhf5w;Em`n3|TD)HFe#4&&G!X{VFvAnHH(F}}2k
zBz}NTevxsVY11m9)0{JBU)I`d?=!#t{P+pr87c;55Q-seB7&$u>ZAN5KbQMw%4wBf
zy_SyM5s1D}j`DW}Lb-f1hWN#>15bACI1B-!{$*p|lRDc#45mh%7g)~KG;X;giQ4cz
zx-0pnj!2qV(7a(+S|{3&GLgm-k@~jZRDE^avFXjd9ffC1tl)}3jNXR&N>?OTt?Ht#
zlI7ppt6kZ$t5(m6<9Yz^w+*bq)XNPM8`uheUf1n8w&M$A#)@?KOHaCOW%Vg3hAg{Omo6#ydhc0ZvZfsS@U(kudv9bQCROWM
zveT5F(&w=;?6*~)YHG}_Fu6-U&GPQD#?ddm7Q@q*xC!z>&qH7-$ej!`m=du=uCfGH
z{&P;crMZ3SoCqvj?1zA8k#cID=;pKM!
zIP;tT0hZ6PdX&00#9F;H!202oWSy5x0~&l1nB#3Tv4(kMc`6|pkQYV-tn)5o4Q$~a
z?vp;t5+C3p%PsNr2#V&XavlC(S;N@+`#dO=j$4G*yaAtJdE0u;pZ*1m0A8K+8I!XM;&
zkccXQ#F7Ocg*anJRAPZ8&)j=v=FFM7zkYxF0pJmK9TZTsVYw)wtWZ4C=L+SgQ4*!k
zc+XpPSwr6Qnvhjg5mA)N0=Hb`&&|+6Hj#O*l3t=E+=Rj{o&tFa
z`c>}|%4;|a*xvdARj;!^<4cx)n|6&Q;9FSWqmZVKD%!N`L^pE+ba00^Qe}-*c9PZw
zw%R~>+3+Xpg)97y)`wcn`-sjh=<2CMbCdIr1u5*+62h7~c<_w5$^JLNQu(p8ve*mBr
Be@*}Z
literal 0
HcmV?d00001
diff --git a/Tank game - Client/out/production/Tank game - Client/Projectile.class b/Tank game - Client/out/production/Tank game - Client/Projectile.class
index b95adb355320580c47057ff5e620d19d82018a79..8ca895d89c159fb145e306e71d69fd54f9d18d3c 100644
GIT binary patch
literal 1991
zcmZ`)T~kw66kR7FgoGnhi^!)?L`^Q$SgI|GQh{hq4H^LvwN)?4fn2!Un1ddzP*0Pqxs&zc}g0IXAS%Hr1|9K6^nWI%=7uxusqP)|VZ3}cK{_90fM;}hk#LOXel3noC2PINCM0LqF*Axq`&uS!oNrMt^;xIw6q^XipY#l)n
zc|YEgcw6TV=iQ2qepKR^AAQw#)Go&*PWUbr%h4|HNSyRt)&duSF^O@cIdWD#t{hL5
zXZ;ju-O$q#@8S%N%)VjNyejd&w#4XuMp+9*Pp7{oaUC}Vwo^Oi
zt~iBC#>tswmPY<0lF#|DpxkBUmDf@=A2vIOYjNaJh(bxsV}X1M*!Gey`$7Jwa)leh
z@pf)->?Ob9BuOq{Ni1seG}zX>s+3Ge)9xB!PmIo9pURy&rHdPPor-5V-i&Fls4&+p
zLK;ktrZX3(1R4{WOpOxB8PaLoEs&edS<6x9R+i^fdD@)QY~7J{^QJvxmMtv@$~v!T
z5v0s+uJka8x602NV=*TwA76HFs<9Q@R%}v3BFp)3JvgXkJ*bE;6XcX<=9g#-LdWv1
zZCe$~b%-W$H9%N97~bL{21=H|X=H=?nQzKnDd!b;R2Q;|?4WKqSBi=bPfmhogr68n^!t#vhlrw%=Mkgxe%JjL
zgnvfF2(P2j_zBHb>@*Hk(Y}rz!+3(8`%kfF9ZBQBIu00ByzwI+hEV2r9~$_*6OCx*
zPg^U0iguxgkO$CCkR3RTPE_b&)RMu&3MHn+O}{98yTx0`*RAr6<^i`qfO&zi1vNbe
zAreaRDUK|yV`x(xrZ}<*sL2non{axt8@+yVSqrg|d<`E3;eTh(b?OHO%Nk|;p?npm
zw2+}NLLsXS167>=`a7I`ey2R0|K?j9(~cA_@qY06o$?iJ?55%a3T72^57Dd}IdY3w
zAE9H5MQY0sEknlTCn(n4SVvLU6Mmt=dpO&EwsSA$u#cSBk57=mJ+}2Lwpus1wN}SQ
zjSuiKeFQ$GjWzxWrBlO*2(ZKv{)_)@+yC$fdxtZs
h@iE0y4?4nT6o25Q#;chj;jCw
literal 2637
zcmZ{lYgb!E6o%hJZX^x`5s*uvRBf6BBwp&Jf>JRaQE+wp`E`NYO%H_MyIV5S;N!H3-_RPHdnLT^v{QKXZ{{Xm;R{?au<%3(n1Fwdj
zL;X~b7WCqNG`V+ZWGfoHGx=h^GONKA3a5SO)Zk9(#TNni;PT@QC?C2MZlGI3V69w|
zMfrlkb;kw$+$gh=konUx_f3UfyhW*lJe9R40owW%2Jp59|A|pqvzPco)|zlyW(+9|
zV}$aYu~;;Y^2P}}p`GSAqY7iVMQ2prE1hZZgyM1Gy{%zLHud~0dXhDYM)c%BKQ^KZ
z`Es^ki2Az<@8OOH-@Z{fTPsnT8;#4zU4_u~$T>&65BeB1{sI`sq(tm}It;~Pv2a>;
z7ghKGA8Jq*gXKcQNTRL(X;J!E;T}HWjtH<|6e~t~+hm9d!)FSg3xi+iHjWJ=CriFi
zn8u71k@^yMh#WFHtMJw9f*FyTQ<%S&I{R=~8l7?TQXrcq)ghINGvG5B-&vSdZ6DArAdv{=2?cEq%;kTFdbmY8-FzQI$*
za(*+BSWN9MBooPX4IMjV@~_No?{2IuF2*!;EtHBU6}?zV>xHV}lEbMVz`CBxS9zXY
z%kk8Fa(j1uE*9V1kU1WrFO+i3((XjQXslL`_Kb2$-;=!UO_Z{FA+4A5(zlK7%0Zq=
zD$&UBX->7%)Q*fK93y7s{jP>iJ9cb(Bv7n1W~O#dq3Ur?uNcdAvdYodGus~u+kzBh
z%3CpZhb(m(B)*hjD|Q`Nb}7-+mD^+m*t%I(WXUv>E!g)tuu-a(v&NEnTe}+@o04?J
zZ5~1gL)C>re2W!m*k!K+&)Db5m~CEqvu384HFLtOnFeOfb2e)pu30l1%v!f=z6Ipe@k?lp)*Qpq-gc)_4afP*M-`;wJGxj)p?Y$TS-BpRO;wl{Z15@&^
z;UoI`^deis{f6yJ+8&5)q2c(3xiG?LPw>f{Y;qp1I}g{LhwIMy@Z0;GC5*s(BivG;
zp=@m_MYK&*b-rEBAm3ATD7*Rm1(0Ti7Z;jcxh`z%|7#m0a*H#fL5AG
zR)Y7Sky;)bNkbVY_Tt8-MlSKN733K~^fn-JlLUlcCR?i+RY3SrcL3RH1^LMVq!Z`$2X@MQ
lIe`K1-+_#)r!SdtOW|ShJDv!bX1=gi>igLH-ps-u{s*8xhz|e&
diff --git a/Tank game - Client/out/production/Tank game - Client/Sprite.class b/Tank game - Client/out/production/Tank game - Client/Sprite.class
deleted file mode 100644
index dff74648c27e3a308c0d29f0e9f8774e6a2d5bcc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 2036
zcmb7EX;T|V5Pb_ekXSGfaDo8?i2-SCSrEwK$i^HBL5XY}LAY{xkrrt|XqD9h_AlVi
z`YJ3yng+<_2*x2{s3?XZX9iBk0PWajEIKe1M|e(
zf0Aw#t(ui?RLr`SE?7m+td*;lhR9vJW_$A*Mibd={w?3SY1h2;BbhVF%@{fmiz2S0
z6FTp$*InD=1EG>-mNaO);?S+*3VJkzgV(j3So?ImC)O@y&DDyoWi~818PIW6PGU#S
ziM3w0tddwi&@qT>eA;_jCqkbJD_!O7^t$KTwQ?p-uVEb{xXxD_mbc-WwMNzStZm*(
zWRsiXFs5VtlEaRie5B(BCU~_RT-|rvqlSiwM6#KJqEoFhOSV&Mq}TQumV09ERjs_;
z@G?Bk6+UF$@7o>M(GV@eqVzwI`BUF{gCg7IO#9TXxB-L>8!<{K@IZ
zI%b=fRH&cm_*4ury02Pxx#Gn!iO)scJ5+(9k!>e3xEsYi9rL)aVLXWK-5eN>S)ytK
zi3_=1+dClROma7lMJz?JtRssrHFV2!e)=DnUWKuEPQfhMr0i!~@%l=~ss!4~sggsU
z`dY^~@=klvX$Z#$Iv!r~B-uqg(($eGY}hsNT-UK73Wg~0wiq^bY&8u#8fFtY{#~FD
zlt)uUzvlfqUUsUE%R1(3%T9@9btP}ttcS-(dzQN)+Df50MYFnTy0+{CW5}!6*E#Ivb3SE_@NkJPZ!8!u
z@Zs;6+%cY^*E{1b!Evh}X{X4=49A?>yu@d(@kJZ9jGbpBD&CLD_?%O>!tcin+1%$Z
zoW!pC7_Hd%Tln<=f1Us>{Qm|2Pw0b~Cg*$1~C
z{by6JkUK1jXf)-UrZq8LP_R$s_&PNk#W2Q@rgnmPRp~JuV8*Cs1-8nLWEI#B;(jp;#sY;sr6yG);>5cjq$u#0{3yO*Y6a
z{-+f5m`Z4>mFyIbRGCJC6toe(1}6w2&99VSm@r+xa^d$yL>Z?qs22_%)KFJmzx)kZ
CCy9>$
diff --git a/Tank game - Client/out/production/Tank game - Client/TODO list b/Tank game - Client/out/production/Tank game - Client/TODO list
new file mode 100644
index 00000000..ee35aec3
--- /dev/null
+++ b/Tank game - Client/out/production/Tank game - Client/TODO list
@@ -0,0 +1,23 @@
+Fjern bullets
+DONE> efter timer
+DONE> efter ramt tank
+
+Lav colission
+> tank --> væg
+> tank --> tank
+> bullet --> tank
+
+Map
+
+Lobby
+
+Scoreboard
+
+End game screen
+
+List af ting vi skal sende til serveren
+
+Liste vi skal bruge fra serveren
+> array med tanks
+> tank ID
+
diff --git a/Tank game - Client/out/production/Tank game - Client/Tank.class b/Tank game - Client/out/production/Tank game - Client/Tank.class
index 23de16ca5b913bfcd83c10af0d548b72a20465ba..5912fa43e35d76076db27c6f27eb33185f514129 100644
GIT binary patch
literal 2326
zcmb7FU2{`a6kR8uZF<{6ZNYwlpg?j3QVI$*Z7CA5kw8mR3k5&8O>Ub@)7*IPrGU@Q
z^o<|ki!VOl3tH^&+Ofd54ub?uY1Nv$}VnRCxMd+)Q?-fQo3^79|xzXWg|UnCGh
zIF5*cC}Ijjcdd16`9az*+EqL4m#vzep0kUARb8pr3bApg>I9Pt2b0-seur(%a;iak
zR=%0kLOa^f9!J7J2MmSCyj5N0RI;s-g1RN@E(6`zqY!QQRymRO74;y$BZ_$Tu2lJj)^($6j-()h$Y-&Lajv6?&
z%V1G7DFY_n=Fyd%N5jcfR`e$foD_W<^*5YSP!{2cfm6E)A;V&@${
z$iy+BFubF}fg~?Z(sOP=4g}NK+?wa=t(B`}NYam*PgU|yk1+|^5Y)e6ew
zEO6(nlEVz@l_USNSTJxytiwgum;IuFTYB$1RfW?el$16-HJW0Jz4{%g_x&Ze;(8>W
z&M&zo-jwdVQ?;+%TU)Zdc_CHW%Pm@!1N6Cll
zDGaJ7QboA?oc%a<8LB|O;ZT0;_6ka)`&CV>5}K|
zWjbN|GSQB@XioZ&JGqsYUGKi-u|_d{d*|q$_sS5}dvsUVNwZ(9KPPmQ;|(sj_q?Kg
znKzhqk`6v8oZ}F?D8z1xaqt!4HzY5Hp7}=TnJ@FwE&=`>@T*lV_JqSxG$_yPMj(Qo!gH!*AuZal>ybBNy~-|~0}
zpYUt4xq&VQ6eC<5eFPgoJAo5OGQ5+Np21#Ty&il@%jr5aKEoaE7z8X@D7{+ZN)pVV
z$W>UcN?b+sN>YjHm5pVhDXgH}NGZ)(d_>JB=zq*bJvcD}LlR)4Zmp!0;2_>v~I!aD}e)2ScUOvf(S)dUN^Bp*VEZMq3-E~SO)H4j{FjAVC5UmCw
z%!Fy%ja5|0M+h@mqfF8(G*YT^Z6N$RLh3h6|Eg1RQEMdWp;KE=G5T{aFuuq@_XZo>
zO>!LX#YMNs#U+kWy?KVq-ys*m4Ri4cyF#q*usxcU@6r`I#>Y8{3yii&^3*oTpKs&W
z8u)^?jsL&k{|Ws#**Sp;c3BgBavR-iL67TbN0>+F#&gU}n~WpLUGK)R=lE!~D6LIV
zdP{UuL@j;Zqr31Ft2oNaokp5f63l(NV@Dd8?fmES5oo6G{de@0-RKnULO)CNb3{K+
j^s#?MS6IjWM&(=YM&~ySx%F;Lv=A3>D%;4M
literal 2030
zcmb7EX;T|V5Pb_ekXSGfaDo8?i2+HrEC}RqWMdA6phPx~AY8e;NQ<-}c9qov_AlVi
zr!#)+~2
zB-1FFwwY;Ejk=jBnkCP$D>YL?_ZM^(!*0|J&)nvzL@v20
z24gzLFB$B}&PO_KV1h?0!O?xkJ!)u}NFPjVv&0@{`?hYny;ExrRv2oiO(gqcbGe-jA}cP#oZ|G>6piT4da1t@76$fj54z}khl=r
zwY>u>&L(%`Sj18k%Q|xSQbV^~=ZF7+;Z^C2=M;^yMah1&m9DRJtcs(pn5uNhRbT7)
zM($}ZIStYHK*z&NmK3{)M>@V$mJQ1m%XJ+alEDyDye+_{j;$uJqhU6Y=kJ1qpgfvM
z^ef)4;$^4ixU6E{w(OKyR#ys^Z9Y6c+B4k^$*mNcQ!;9shHJ?>07G8YqRvP`%00_M
zf5P^Z?Uaqd2s6r#tKr(aNj1b>RTc$v-&2)9FFJjwC@JMi9>9v@o*FLG5>XGONP?UO
zUAC5t(xJZ>SIc8oCy#{^c~RusFZo5a=s#=LTb{)0&aqoES1i#N6A8B^n|v4@{78UR
z1bNNu+vMe{k#ALve3=}3QsgbjR(Ai+*CA3ugb3~=?aXp-$f51nSEPnzf~dhtE2
zR((GFfFHR6=I|4DH8uO0Gf^{#$DFmRnZa2|&BTAvIfp%z$OM#O20C1_%N+};7x?gZ
zOzxzfq1QX(D#3QE9~q~_$qd_^TD-((ukl42wo*IKC{(N;Q}MZ`ZpGh^8LGL@ubcR;
z`y4Ib_gnn+fPbC@E&l&S|4;0Ln5O1?jO97|e2cwufjz3cou-bivsYMHP0^1PuKLfW
zULk*2lB5wTG@&(tE@ZGz#rQgNHi}`4A;a7W=T()D>3}oFY*t~ZC>;EE_R3{;LYLTY
zkbQ#elVqRz7xqKcg3O7%;oqI7*%zK-Io;#~xy654
zQIDyBrdz>I<4BchBnUwp>1{ZH6B&+Deqqvd{mO~|E+Pt?zL33eaG{2}vijw3@0^Ct
diff --git a/Tank game - Client/out/production/Tank game - Client/Test2$1.class b/Tank game - Client/out/production/Tank game - Client/Test2$1.class
deleted file mode 100644
index 99721cf5779a0b54d4f38ab6d08d0756cf25b68b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1881
zcmah}U2hvj6g?9=+1QyjCJ8P5NJ+s3+ez&v<*PUZNG5eo$bu-rAeG>u7fq
z${P|7{1Q}&x1z=%9)LHbzVs1^{10A`5NBpx#}1Z=G@i}ed(S=h+&lB+pPzpLa0T@k
z1`sh2l^Dd3fU#-&!CZ1yU?`|Ne)1BJiux?CJclJ>hzrE`%tq33JgZ>~oGEUbd*1
zZQE8rV)Ksc1PcO@RJszw37j%52WbPzGdPz+$>9{+)L2}Lh
zYOz@*lY!fXIL>0yz&VK*F~xFvs?qK_x-ak9F0&goI|w7srP94sbX=94g}j894J0Kl
z;1z+>{ZT_Gqv=&0*KFvT$R~xgfsDj7W~fz9WVgEPgJMHows%9vF2#^V&cG#!Sx|*R
z-8zBj{pKEv6$NE~P2zRDAt0%0!@h1-9n}`3$5rA``;r;dnZRn&
zFPd6P(=~+!iFffHN%&nPl(nL)?@KHy`iB&6D*R=M6$Kvg9ap)nN)&oQ=$6HrL=h#<
zjGC8{CO?_#l{-{I4^2U(9KeReHGISgshe(9P3F{*kWPnmGxO<+f%2iiw(4+Bn^rY|
zC$NxePk+DM?HTW9(zMbQsugy4R2{7E-ruslO>;|e8!I*~vr#cUNB!SEjH*i~5DSwg
zXY*{KrX?`ho90L<0>{dMY2D+vx1mmUYVWFxB@?~u)Lb*z^~j>AQM)f#{#l-`u(llY
z&rIP(KSE)FWaH)Lu4maRj;b)OhcBz9NMLl?wHi$}y;ib=db27~1$`#eV1_zwxV&Z8
zJlm%LYaQ}osiw)EFZ68w{ngj%{Ba%p{
zmkr>~$4c*f5cx(%xW=(buaEh)%7`fUiOlpqL}q3mM&{x^MlwHQ^byYoP~qX#7lJfZAA-0u;Ya|hG;lqcxbr{qSw)VfU
z^dRhb2lg)w8&Tp!v^aB+{4Qb!8(60ZJCwnvz+Y3~Zz$7u6zX@}!V}!VANUM^VyjEY
zgN~2~^tnxWJ|)@+250`p%BWh2s|39hDvQh1Rp}qgO#guy9wOWKrWj)&}P%+swbj@V{4u!UzBW
diff --git a/Tank game - Client/out/production/Tank game - Client/Test2$2.class b/Tank game - Client/out/production/Tank game - Client/Test2$2.class
deleted file mode 100644
index 682c29498309725bc36bef1811521006dc3fb6ca..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 787
zcmaJ<+iuf95IvhXabjFzN}-`Gv<0_KxWo_%Bm_dL(u79MO*m~I`s6rE<6`W}b_#qE
z&wzvwLiqqb3NgEh$O|BOcjg?;`ka~FpTE9O06axiLkejXijEAj3@c~Oh4cEo6}vp(
zmKU6l6YGF~sD(q$kiBsHF^?J6OXZW+zbl{RkwadErsEQH2DQ)Qq-s_fwoLn-m$;+0
zb8b%0n^MV?O6DJ>)JZc>#xCn9z+gxn_88XwrzqN3)NvI{Bo{_QFK~Q@bgA4_aeda7
z$P;)*F4&3VzM*N&ux5wj$mI=BoY3T0D?*f^P!C)`jJ@Er&680$RAEs+vVvT6
z=mPe`m<;L7AmCBWcjB1G#s*!~9eN1ND2l5R88KVfrnp0Bf;45o;Wx0!5A6%o&*EG7
ziYrR@Ba{OPmkDO(aD`xY4sQ}v=Wv5yPQp+0TXx*i?3hh{>iuPYND7Ys}@8bbQ1r^#KN~VHG6gAl|B}VQyKwqKL
diff --git a/Tank game - Client/out/production/Tank game - Client/Test2.class b/Tank game - Client/out/production/Tank game - Client/Test2.class
deleted file mode 100644
index 96bb9d24c2ea8139c824d614ea593d1b96f3e34a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 2872
zcmbVOYgZFj6y29R2I2?-0)hg9)fxgAA1$o}DM(OLc?lGZ_Tdmlh>Z!(45+Pr*#~{U
ztG1u|6Iz#mEvsFAZ2O~J-SZ!#^PcooidzsE*l*v_67XC>1^8R6YzxFrz=p73Jn1r+n@{hrcB#8Ea1JI
zTQ&tmLatZpsFI6XDs81Q=2q~DCO
zlua!N)Q8Ux%OIl}Zj4SkRysQ$lcDTFlZIv;E!Zv4kjG)C%&Zw*G}2ioI+)AkEJk^9
zVrXboV5c%etdH%9NylwE_TVW2J!P4OV-Bk51&)Rji63ACZ
z3DPw>oX(P`UEwW{$;Ft4c7d7_Fek0t(xQeAf$Ea^(cGLFKp0&zl?McNY72>rQa#sUL;6)9mbqr&K=SmXc2IuB>
z`@HE)Sw_~rn6oYu+`eM2Q@KpWOvwtfqhqtSX)PPG8FM&oJIwl+Ky!&v=RYISiJU_{
z1~7^Yv6*V?{iBZMc&joM}
z=QX^n;}yIrP$|v1TSg3rg;?R_CXBf>v5}N;yge?f_<{}tv#c6b#f5bd*FZ;&C6G2J
zF@O{)yam=
zP)3(7&zjbh6aZB^oJ$#*X~Rm(aemV4ETl=amXBCovMeb!hBeRm+AS_c7Om|VmQ$kZ
zqViP`a)&H}P=W7F8>lSz(&imiSXUS7=G4U)L`Gd?jazL}mB>)$<+Zihkusz%Gg|Q3
za`@P?TY#)l>0m^?D$NC6)sbki+F}Vwt4}FUU^~k@_42;t}V4UT4bTCi=7tV2Y~SD{6!@z*N0v$?g3V8pYE+F!Y$
z3~%yVuN(#8MK$l{8U#^`9SGqD*L2qq-oo1)Rp1>o=A9g2E1mcv_fcOoCLezAZS`_v
z(SQ%{;yum_+{F8N1Ah~xpL1s-k$Vj79)fqVa}BK{ku~fc-9R|$`vZ}rr*kst?V4Oi
zXODLS(PX1HghL@5xr=Al@qCXj(&+2#T0^X((YJ;dI@T~$3}z2q0K18(mA?Yo5aHX~
zhkZD~=W-bPG0t~Q2HEEZl1Isq@Buz#m_ZESBdico9eVLGK7ofe_Ty80Mu2_f>2rLc
z*!vP+^^wM`e82hP`4i-n(2uF|50
z5API)a=daM$yK~2ad}k6TwI-K#sNkX#UUI-HxBbvI)Wkg&hT-SxLVyv3b-Z|2AQ=9
ze9hdJ;T!h7DC@3dpTA4;7;X@QOie?urJJOulDk%#R_eSfUF$G=e2uOh>X^-OC$94Xg$wx8@S5WmENF+m8
z2;ou)8GhH19quT`;qDrswc{#=dgY})A47;EnLWXlzY+4b&l97UQB`$p;7T&mNp$ua
zmW%RnjV4fuIb}5BZZ80G(FEh#%RnVgCwS`FC4>
Hg601LQ-Fkg
diff --git a/Tank game - Client/out/production/Tank game - Client/test5$1.class b/Tank game - Client/out/production/Tank game - Client/test5$1.class
deleted file mode 100644
index d736d5a07425b5bd6331f3ecd277494832d9ed1e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 583
zcmYjO(M}UV6g|@}-R-hKK@k+BpnYg-Lgm2+gCUScqofcMo4ya*!H#KX$nF&QEfbZ*
z2S31%GM-r~vdPZ9_uO;Oy>sXHpP#<~yhfvn63QWh1aqhegiht|Rbx+};zl}eyd=~s
zu>BYjsv+V8^GF2hU*x4czwSt*C(>zaI!FJ!zMiOz3U9R0?m(d2Yz<;8Vktx|!LqNO
zD>TWOUJRvE0QJrZo@@y)Q|$Viu-jXcj%}{Z=M&{dc9>urI|2)7
zrZ{2O8mEjCSZlU=v#aN+GOF`YW=ybYbjsbmw>e442V+#$9m_mdIdw|h9Uy8ozh!zQ
z{_|LYzyo>*j6D*!UwnsX-yr;2a31okkOORBmFJ^d7VR1%@(VTI3+s41(>kOrGZ(eL
xLHxkNf2Fvn-a?4_J+Qc9tvbPwp>dqAP|JNG?H@_=9e>HA4<+;Psi-#O>I
z=e@`ObLJ5MYgMNo9_0AoHIR!ug?Wd}BWCxpkU20Ai*}iIG!YMN%-k#Ft&7H^cD+JQ
zWmUTm`3ke#DXA_iZiQmzP-4&y?J(n(A3o$1pb&-+Qw$VgszR=9rR-G--ee+SE0l#_
zZE~GVEH+SrX`FR58nJs7RI{|sFfdbE^LnjlPp|F6EXr#$<9+!kW9tA-u#yFsgSkG;
zGcX?u#v3_cM&ovs^BWDTkFqZAba&?1EumCZb~*<5S9C)8>uqw$`)
zu?xwbUDYl|pJSj5=hD2eSW1yTR2ry4wL)RavUen{?$+q#7S~$2X;W3Z^w%0V4@=nJ
zW7�jie)}5H?RUL6&AWM
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
Wsf@0WM3duwIR*070d<)&G5f#1jRyk&
diff --git a/Tank game - Client/out/production/Tank game - Client/update b/Tank game - Client/out/production/Tank game - Client/update
new file mode 100644
index 00000000..578abd17
--- /dev/null
+++ b/Tank game - Client/out/production/Tank game - Client/update
@@ -0,0 +1,29 @@
+ private void update() {
+ sprites().forEach(s -> { //handles what happens to the sprites/bullets
+ switch (s.type) {
+ /*case "enemybullet":
+ if (s.getBoundsInParent().intersects(player.getBoundsInParent())) {
+ player.dead = true;
+ s.dead = true;
+ }
+ break;
+ */
+
+ case "playerbullet":
+ final int angle = player.getAngle();
+ s.moveBullet(angle);
+ sprites().stream().filter(e -> e.type.equals("enemy")).forEach(enemy -> {
+ if (s.getBoundsInParent().intersects(enemy.getBoundsInParent())) {
+ enemy.dead = true;
+ s.dead = true;
+ }
+ });
+ break;
+ }
+ });
+
+ root.getChildren().removeIf(n -> {
+ Sprite s = (Sprite) n;
+ return s.dead;
+ });
+ }
\ No newline at end of file
diff --git a/Tank game - Client/src/Game.java b/Tank game - Client/src/Game.java
new file mode 100644
index 00000000..3ffeb031
--- /dev/null
+++ b/Tank game - Client/src/Game.java
@@ -0,0 +1,146 @@
+import javafx.animation.AnimationTimer;
+import javafx.application.Application;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
+import javafx.scene.layout.Pane;
+import javafx.scene.paint.Color;
+import javafx.stage.Stage;
+
+
+public class Game extends Application {
+
+ Projectile[] projectiles;
+
+ //movement booleans
+ boolean left = false;
+ boolean right = false;
+ boolean forward = false;
+ boolean backward = false;
+
+ private Pane root = new Pane(); //initializes a Pane called root
+ //size of the window
+ int width = 1200;
+ int height = 700;
+
+
+ private Tank player = new Tank(300, 300, 70, 40, "1", Color.BLUE);
+ private Tank player2 = new Tank(100,100,70,40, "2", Color.BISQUE);
+ Tank[] tanks = {player, player2};
+ private Map map = new Map(width, height);
+
+
+ private Parent createContent() { //creates the "draw" function
+ root.setPrefSize(width, height); //sets width and height of window
+ root.getChildren().add(player); //adds tank as a child
+ root.getChildren().add(player2);
+ root.getChildren().add(map);
+
+
+ AnimationTimer timer = new AnimationTimer() { //everything in this is called each frame
+ @Override
+ public void handle(long now) {
+ update();
+ }
+ };
+ timer.start(); //starts the animationtimer
+ return root; //returns the root
+ }
+
+ public void update() {
+
+
+ //moves ALL bullets on the map
+ for (int i = 0; i < projectiles.length; i++) {
+ if (projectiles[i] != null) {
+ projectiles[i].moveBullet(map);
+
+ //removes a tank if hit
+ if(projectiles[i].collision(tanks) != null){
+ //root.getChildren().remove(projectiles[i].collision(tanks));
+ //root.getChildren().remove(projectiles[i]);
+ //projectiles[i] = null;
+ }
+ }
+ }
+
+
+ //checks the lifespan and removes bullet if it is over a threshold
+ int threshold = 300;
+ for (int i = 0; i < projectiles.length; i++) {
+ if (projectiles[i] != null && projectiles[i].getLifespan() >= threshold) {
+ root.getChildren().remove(projectiles[i]);
+ projectiles[i] = null;
+ }
+ }
+
+
+
+
+
+ if (left) { //moves if the boolean is true, this is smoother than having the move in the start function
+ player.rotateLeft();
+ }
+ if (right) {
+ player.rotateRight();
+ }
+ if (forward) {
+ player.moveForward();
+ }
+ if (backward) {
+ player.moveBackward();
+ }
+ }
+
+
+ public void start(Stage stage) throws Exception {
+ Scene scene = new Scene(createContent());
+ projectiles = player.getProjectiles();
+ scene.setOnKeyReleased(e -> {
+ switch (e.getCode()) {
+ case LEFT:
+ left = false;
+ break;
+ case RIGHT:
+ right = false;
+ break;
+ case UP:
+ forward = false;
+ break;
+ case DOWN:
+ backward = false;
+ break;
+ }
+ });
+
+ scene.setOnKeyPressed(e -> { //movement switch case
+ switch (e.getCode()) {
+ case LEFT:
+ left = true;
+ break;
+ case RIGHT:
+ right = true;
+ break;
+ case UP:
+ forward = true;
+ break;
+ case DOWN:
+ backward = true;
+ break;
+ case SPACE:
+ Projectile p = player.shoot();
+ projectiles = player.getProjectiles();
+ if (p != null) {
+ root.getChildren().add(p);
+ }
+ break;
+ }
+ });
+ stage.setScene(scene);
+ stage.show();
+ }
+
+
+ public static void main(String[] args) {
+ launch(args);
+ }
+}
diff --git a/Tank game - Client/src/Map.java b/Tank game - Client/src/Map.java
index c251a49a..10953887 100644
--- a/Tank game - Client/src/Map.java
+++ b/Tank game - Client/src/Map.java
@@ -1,21 +1,23 @@
-import java.awt.*;
-import java.awt.image.BufferedImage;
-import javax.swing.*;
+import javafx.scene.paint.Color;
+import javafx.scene.shape.Rectangle;
-public class Map extends JPanel {
+public class Map extends Rectangle {
+ final static Color color = Color.GRAY;
+ final static int width = 100;
+ final static int height = 100;
- public static void main(String[] args) {
- JFrame frame = new JFrame("My Drawing");
- frame.pack();
- frame.setVisible(true);
- frame.setSize(720,720);
- ImageIcon pic = new ImageIcon("path");
- Image tank = pic.getImage();
+
+ Map(int x, int y){
+ super();
+ //setHeight(height);
+ //setWidth(width);
+ setTranslateX(x);
+ setTranslateY(y);
}
- protected void paintComponent(Graphics g) {
- super.paintComponent(g);
+ void createMap(){
+
}
}
diff --git a/Tank game - Client/src/Projectile.java b/Tank game - Client/src/Projectile.java
index 51ae0365..4481e9d6 100644
--- a/Tank game - Client/src/Projectile.java
+++ b/Tank game - Client/src/Projectile.java
@@ -1,42 +1,59 @@
//package sample;
+
+import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
public class Projectile extends Circle {
- final static int MAX_SPEED = 10;
- final static int[] BULLET_COLOR = {20, 20, 20};
- static final int HITBOX_RADIUS = 5;
+ final static int MAX_SPEED = 5;
+ static final int RADIUS = 5;
private Tank player;
- private Circle c = new Circle();
- private int xPos;
- private int yPos;
- private int xSpeed;
- private int ySpeed;
- private int hitboxRadius;
- private boolean hit = false;
-
- Projectile(Tank tank){
- create();
- setSpeed(tank);
- }
-
- void create(){
- this.c = new Circle(tank.getX()+Math.cos(tank.getAngle())*5., tank.getY()+Math.sin(tank.getAngel())*5, HITBOX_RADIUS);
+ private double xSpeed;
+ private double ySpeed;
+ public boolean dead = false;
+ int angle;
+ double angleR;
+ int lifespan;
+
+ Projectile(int x, int y, Tank tank) {
+ super(x, y, RADIUS); //bruger constructor fra Rectangle som er superclass
+ setFill(Color.HOTPINK);
+ this.angle = tank.getAngle(); //henter den vinkel tanken har
+ this.angleR = Math.toRadians(angle); //laver vinklen til radianer
+ this.player = tank; //gemmer hvilken tank der har affyret
+ setSpeed(); //kalder metoden set speed og gemmer en x og y speed
}
- void setSpeed(Tank tank){
- xSpeed = MAX_SPEED * Math.cos(tank.getAngle());
- ySpeed = MAX_SPEED * Math.sin(tank.getAngle());
+ void setSpeed() { //sætter x og y speed i forhold til tankens vinkel
+ this.xSpeed = MAX_SPEED * Math.cos(angleR);
+ this.ySpeed = MAX_SPEED * Math.sin(angleR);
}
- void moveBullet() {
+ void moveBullet(Map map) {
+ this.setCenterX(getCenterX() + xSpeed); //affyrer skud med dens vinkel fra setSpeed
+ this.setCenterY(getCenterY() + ySpeed);
+ if (this.getCenterX() > map.getTranslateX() && this.getCenterX() < map.getTranslateX() + map.getWidth() && this.getCenterY() < map.getTranslateY() && this.getCenterY() < map.getTranslateY() + map.getHeight() && this.getBoundsInParent().intersects(map.getBoundsInParent())) {
+ ySpeed = -ySpeed; //inverter hastigheden hvis en top eller bund væg rammes
+ } else if (this.getBoundsInParent().intersects(map.getBoundsInParent())) {
+ xSpeed = -xSpeed; //inverter speed hvis sidevæg rammes
+ }
+ lifespan++; //incrementer lifespan hver frame
}
+ Tank collision(Tank[] tank){
+ for (int i = 0; i < tank.length; i++) {
+ if (this.getBoundsInParent().intersects(tank[i].getBoundsInParent())) {
+ //lifespan = 300;
+ return tank[i];
+ }
+ }
+ return null;
+ }
- private Circle hitboxCircle;
-
-
+ public int getLifespan() {
+ return lifespan;
+ }
}
diff --git a/Tank game - Client/src/Sprite.java b/Tank game - Client/src/Sprite.java
deleted file mode 100644
index 813e7bc4..00000000
--- a/Tank game - Client/src/Sprite.java
+++ /dev/null
@@ -1,54 +0,0 @@
-import javafx.scene.paint.Color;
-import javafx.scene.shape.Rectangle;
-import javafx.scene.transform.Rotate;
-
-public class Sprite extends Rectangle {
- boolean dead = false;
- private int angle = 0;
- private int angleIncrease = 10;
- private int moveSpeed = 10;
- final String type; //either bullet or player
-
- Sprite(int x, int y, int w, int h, String type, Color color) { //constructor
- super(w, h, color);
- this.type = type;
- setTranslateX(x);
- setTranslateY(y);
- }
-
- void rotateLeft() { //function for rotating a sprite left, pivoting around its middle
- getTransforms().add(new Rotate(-angleIncrease, getX() + getWidth() / 2, getY() + getHeight() / 2));
- angle += -angleIncrease;
- }
-
- void rotateRight() { //function for rotating a sprite right, pivoting around its middle
- getTransforms().add(new Rotate(+angleIncrease, getX() + getWidth() / 2, getY() + getHeight() / 2));
- angle += angleIncrease;
- }
-
- void moveForward() {
- double angleR = Math.toRadians(angle);
- setTranslateX(getTranslateX() + moveSpeed * Math.cos(angleR));
- setTranslateY(getTranslateY() + moveSpeed * Math.sin(angleR));
- }
-
- void moveBackward() {
- double angleR = Math.toRadians(angle);
- setTranslateX(getTranslateX() - moveSpeed * Math.cos(angleR));
- setTranslateY(getTranslateY() - moveSpeed * Math.sin(angleR));
- }
-
- void moveBullet(int angleB) {
- double angleR = Math.toRadians(angleB);
- setX(getX() + moveSpeed * Math.cos(angleR));
- setY(getY() + moveSpeed * Math.sin(angleR));
- }
-
- public int getAngle() {
- return angle;
- }
-
-
-
-
-}
diff --git a/Tank game - Client/src/TODO list b/Tank game - Client/src/TODO list
new file mode 100644
index 00000000..ee35aec3
--- /dev/null
+++ b/Tank game - Client/src/TODO list
@@ -0,0 +1,23 @@
+Fjern bullets
+DONE> efter timer
+DONE> efter ramt tank
+
+Lav colission
+> tank --> væg
+> tank --> tank
+> bullet --> tank
+
+Map
+
+Lobby
+
+Scoreboard
+
+End game screen
+
+List af ting vi skal sende til serveren
+
+Liste vi skal bruge fra serveren
+> array med tanks
+> tank ID
+
diff --git a/Tank game - Client/src/Tank.java b/Tank game - Client/src/Tank.java
index c7d1f577..66915df7 100644
--- a/Tank game - Client/src/Tank.java
+++ b/Tank game - Client/src/Tank.java
@@ -5,17 +5,36 @@
public class Tank extends Rectangle {
boolean dead = false;
private int angle = 0;
- private int angleIncrease = 10;
- private int moveSpeed = 10;
- final String type; //either bullet or player
+ private int angleIncrease = 3;
+ private int moveSpeed = 5;
+ private Projectile[] projectiles = new Projectile[10];
+ final String playerID; //either bullet or player
- Tank(int x, int y, int w, int h, String type, Color color) { //constructor
+ Tank(int x, int y, int w, int h, String playerID, Color color) { //constructor
super(w, h, color);
- this.type = type;
+ this.playerID = playerID;
setTranslateX(x);
setTranslateY(y);
}
+ public Projectile[] getProjectiles() {
+ return projectiles;
+ }
+
+ Projectile shoot() {
+ for(int i = 0; i < projectiles.length; i++){
+ if(projectiles[i] == null){
+ int x = ((int)getTranslateX()+(int)this.getWidth()/2);
+ int y = ((int)getTranslateY()+(int)this.getHeight()/2);
+ Projectile p = new Projectile(x,y, this);
+ projectiles[i] = p;
+ return projectiles[i];
+ }
+ }
+ return null;
+ }
+
+
void rotateLeft() { //function for rotating a sprite left, pivoting around its middle
getTransforms().add(new Rotate(-angleIncrease, getX() + getWidth() / 2, getY() + getHeight() / 2));
angle += -angleIncrease;
@@ -38,12 +57,6 @@ void moveBackward() {
setTranslateY(getTranslateY() - moveSpeed * Math.sin(angleR));
}
- void moveBullet(int angleB) {
- double angleR = Math.toRadians(angleB);
- setX(getX() + moveSpeed * Math.cos(angleR));
- setY(getY() + moveSpeed * Math.sin(angleR));
- }
-
public int getAngle() {
return angle;
}
diff --git a/Tank game - Client/src/Test2.java b/Tank game - Client/src/Test2.java
deleted file mode 100644
index 5f8f41b6..00000000
--- a/Tank game - Client/src/Test2.java
+++ /dev/null
@@ -1,101 +0,0 @@
-import javafx.animation.AnimationTimer;
-import javafx.application.Application;
-import javafx.event.EventHandler;
-import javafx.scene.Group;
-import javafx.scene.Scene;
-import javafx.scene.input.KeyCode;
-import javafx.scene.input.KeyEvent;
-import javafx.scene.paint.Color;
-import javafx.scene.shape.Circle;
-import javafx.scene.transform.Rotate;
-import javafx.stage.Stage;
-import javafx.scene.shape.Line;
-
-
-
-public class Test2 extends Application {
- int move = 5;
- int circleX = 200;
- int circleY = 150;
- int angleCount = 0;
- double angleRadians;
-
- public static void main(String[] args) {
- launch(args);
- }
-
- @Override
- public void start(Stage stage) {
-
-
- Circle circle = createCircle(circleX, circleY, Color.GREEN);
- Line line = createLine();
- final Group group = new Group(circle, line);
- final Scene scene = new Scene(group, 600, 400, Color.WHITE);
-
-
- moveCircleOnKeyPress(scene, circle, line);
- stage.setScene(scene);
- stage.show();
- }
-
-
- void lineMove(Line line, int angle) {
- line.getTransforms().add(new Rotate(angle, circleX, circleY));
-
- angleCount += angle;
- if (angleCount == 360) {
- angleCount = 0;
- }
- if (angleCount == -360) {
- angleCount = 0;
- }
-
- angleRadians = Math.toRadians(angleCount);
- }
-
-
- private Circle createCircle(int circleX, int circleY, Color color) {
- int radius = 30;
- final Circle circle = new Circle(circleX, circleY, radius, color);
- return circle;
- }
-
- private Line createLine() {
- final Line line = new Line(200, 150, 230, 150);
- return line;
- }
-
-
-
-
- private void moveCircleOnKeyPress(Scene scene, final Circle circle, final Line line) {
- scene.setOnKeyPressed(new EventHandler() {
- @Override
- public void handle(KeyEvent event) {
- switch (event.getCode()) {
-
- case UP:
- circle.setCenterX(circle.getCenterX() + move * Math.cos(angleRadians));
- circle.setCenterY(circle.getCenterY() + move * Math.sin(angleRadians));
- break;
-
- case RIGHT:
- lineMove(line, 10);
- break;
-
- case DOWN:
- circle.setCenterX(circle.getCenterX() - move * Math.cos(angleRadians));
- circle.setCenterY(circle.getCenterY() - move * Math.sin(angleRadians));
- break;
-
- case LEFT:
- lineMove(line, -10);
- break;
-
- case SPACE:
- }
- }
- });
- }
-}
diff --git a/Tank game - Client/src/test5.java b/Tank game - Client/src/test5.java
index 2c8bc87a..42e523de 100644
--- a/Tank game - Client/src/test5.java
+++ b/Tank game - Client/src/test5.java
@@ -4,13 +4,11 @@
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
-import javafx.scene.shape.Circle;
-import javafx.scene.shape.Rectangle;
-import javafx.scene.transform.Rotate;
import javafx.stage.Stage;
+
import java.util.List;
import java.util.stream.Collectors;
-
+/*
public class test5 extends Application {
private Pane root = new Pane();
int width = 1200;
@@ -31,55 +29,51 @@ public void handle(long now) {
}
};
timer.start();
- nextLevel(); //initiater enemies - skal slette
+ //nextLevel(); //initiater enemies - skal slette
return root;
}
- private void nextLevel() { //laver de røde enemies - skal slettes senere
+ /* private void nextLevel() { //laver de røde enemies - skal slettes senere
for (int i = 0; i < 10; i++) {
Sprite s = new Sprite(90 + i * 100, 150, 30, 30, "enemy", Color.RED);
root.getChildren().add(s);
}
}
- private List sprites() { //funktion der returner en liste
- return root.getChildren().stream().map(n -> (Sprite) n).collect(Collectors.toList());
+ */
+
+ /* private List projectiles() { //funktion der returner en liste
+ System.out.println(root.getChildren().stream().map(n -> (Projectile) n).collect(Collectors.toList()));
+ return root.getChildren().stream().map(n -> (Projectile) n).collect(Collectors.toList());
}
- private void update() {
- sprites().forEach(s -> { //handles what happens to the sprites/bullets
- switch (s.type) {
- case "enemybullet":
- if (s.getBoundsInParent().intersects(player.getBoundsInParent())) {
- player.dead = true;
- s.dead = true;
- }
- break;
+ */
- case "playerbullet":
- final int angle = player.getAngle();
- s.moveBullet(angle);
- sprites().stream().filter(e -> e.type.equals("enemy")).forEach(enemy -> {
- if (s.getBoundsInParent().intersects(enemy.getBoundsInParent())) {
- enemy.dead = true;
- s.dead = true;
- }
- });
- break;
- }
+ /* private void update() {
+ projectiles().forEach(p -> { //handles what happens to the sprites/bullets
+ final int angle = player.getAngle();
+ p.moveBullet();
+ if (p.getBoundsInParent().intersects(player.getBoundsInParent())) {
+ player.dead = true;
+ p.dead = true;
+ }
});
+
+
root.getChildren().removeIf(n -> {
- Sprite s = (Sprite) n;
- return s.dead;
+ Projectile p = (Projectile) n;
+ return p.dead;
});
}
private void shoot(Tank who) { //shoot function, creates sprites from shooting player
int bulletW = 5; //bullet width
int bulletH = 5; //bullet height
- Sprite s = new Sprite((int) who.getTranslateX() + (int) who.getWidth() / 2, (int) who.getTranslateY() + (int) who.getHeight() / 2, bulletW, bulletH, who.type + "bullet", Color.BLACK);
- root.getChildren().add(s);
+ Projectile p = new Projectile((int) who.getTranslateX() + (int) who.getWidth() / 2, (int) who.getTranslateY() + (int) who.getHeight() / 2, who);
+ //Sprite s = new Sprite((int) who.getTranslateX() + (int) who.getWidth() / 2, (int) who.getTranslateY() + (int) who.getHeight() / 2, bulletW, bulletH, who.type + "bullet", Color.BLACK);
+ //root.getChildren().add(s);
+ root.getChildren().add(p);
}
public void start(Stage stage) throws Exception {
@@ -107,59 +101,9 @@ public void start(Stage stage) throws Exception {
stage.show();
}
-
-/* private static class Sprite extends Rectangle {
- boolean dead = false;
- private int angle = 0;
- private int angleIncrease = 10;
- private int moveSpeed = 10;
- final String type; //either bullet or player
-
- Sprite(int x, int y, int w, int h, String type, Color color) { //constructor
- super(w, h, color);
- this.type = type;
- setTranslateX(x);
- setTranslateY(y);
- }
-
- void rotateLeft() { //function for rotating a sprite left, pivoting around its middle
- getTransforms().add(new Rotate(-angleIncrease, getX() + getWidth() / 2, getY() + getHeight() / 2));
- angle += -angleIncrease;
- }
-
- void rotateRight() { //function for rotating a sprite right, pivoting around its middle
- getTransforms().add(new Rotate(+angleIncrease, getX() + getWidth() / 2, getY() + getHeight() / 2));
- angle += angleIncrease;
- }
-
- void moveForward() {
- double angleR = Math.toRadians(angle);
- setTranslateX(getTranslateX() + moveSpeed * Math.cos(angleR));
- setTranslateY(getTranslateY() + moveSpeed * Math.sin(angleR));
- }
-
- void moveBackward() {
- double angleR = Math.toRadians(angle);
- setTranslateX(getTranslateX() - moveSpeed * Math.cos(angleR));
- setTranslateY(getTranslateY() - moveSpeed * Math.sin(angleR));
- }
-
- void moveBullet(int angleB) {
- double angleR = Math.toRadians(angleB);
- setX(getX() + moveSpeed * Math.cos(angleR));
- setY(getY() + moveSpeed * Math.sin(angleR));
- }
-
- public int getAngle() {
- return angle;
- }
-
- }
-
- */
-
public static void main(String[] args) {
launch(args);
}
}
+*/
\ No newline at end of file
diff --git a/Tank game - Client/src/update b/Tank game - Client/src/update
new file mode 100644
index 00000000..578abd17
--- /dev/null
+++ b/Tank game - Client/src/update
@@ -0,0 +1,29 @@
+ private void update() {
+ sprites().forEach(s -> { //handles what happens to the sprites/bullets
+ switch (s.type) {
+ /*case "enemybullet":
+ if (s.getBoundsInParent().intersects(player.getBoundsInParent())) {
+ player.dead = true;
+ s.dead = true;
+ }
+ break;
+ */
+
+ case "playerbullet":
+ final int angle = player.getAngle();
+ s.moveBullet(angle);
+ sprites().stream().filter(e -> e.type.equals("enemy")).forEach(enemy -> {
+ if (s.getBoundsInParent().intersects(enemy.getBoundsInParent())) {
+ enemy.dead = true;
+ s.dead = true;
+ }
+ });
+ break;
+ }
+ });
+
+ root.getChildren().removeIf(n -> {
+ Sprite s = (Sprite) n;
+ return s.dead;
+ });
+ }
\ No newline at end of file
From 48bf417f8bf8bfb51d770f958621635010615625 Mon Sep 17 00:00:00 2001
From: AsgerLanghoff <54887248+AsgerLanghoff@users.noreply.github.com>
Date: Fri, 16 Oct 2020 13:41:32 +0200
Subject: [PATCH 28/73] Revert "added settings to gitignore"
This reverts commit 846cfaea2deaf5475aa77cfdd956d26a74e1493e.
---
Server/.idea/.gitignore | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Server/.idea/.gitignore b/Server/.idea/.gitignore
index 89cf46b5..7c0f099e 100644
--- a/Server/.idea/.gitignore
+++ b/Server/.idea/.gitignore
@@ -7,4 +7,4 @@
/project-template.xml
/vcs.xml
/launch.json
-/settings.json
+/settings.json
\ No newline at end of file
From 05ca87a0df9d12626c1885bb25fefce0c4b9b676 Mon Sep 17 00:00:00 2001
From: AsgerLanghoff <54887248+AsgerLanghoff@users.noreply.github.com>
Date: Fri, 16 Oct 2020 13:44:02 +0200
Subject: [PATCH 29/73] revert to functional build
---
Server/src/com/company/WorkerRunnable.java | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/Server/src/com/company/WorkerRunnable.java b/Server/src/com/company/WorkerRunnable.java
index 960c95ea..eb022722 100644
--- a/Server/src/com/company/WorkerRunnable.java
+++ b/Server/src/com/company/WorkerRunnable.java
@@ -34,19 +34,15 @@ public void run() {
// input and output streams
DataInputStream isFromClient = new DataInputStream(connectToClient.getInputStream());
DataOutputStream isToClient = new DataOutputStream(connectToClient.getOutputStream());
- ObjectInputStream objectFromClient = new ObjectInputStream(connectToClient.getInputStream());
- ObjectOutputStream objectToClient = new ObjectOutputStream(connectToClient.getOutputStream());
while (true) {
// Calculations made by server
- String testScanner = objectFromClient.readString();
-
- String testData = testScanner;
+ double testData = isFromClient.readDouble();
+ testData += 1;
//send back to client
- isToClient.writeUTF(testData);
-
+ isToClient.writeDouble(testData);
}
From 669d71231b6c3cfb391acfa15579183886c11cad Mon Sep 17 00:00:00 2001
From: AsgerLanghoff <54887248+AsgerLanghoff@users.noreply.github.com>
Date: Fri, 16 Oct 2020 13:45:37 +0200
Subject: [PATCH 30/73] same as last.
---
ServerTestClient/src/com/company/ServerTestClient.java | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/ServerTestClient/src/com/company/ServerTestClient.java b/ServerTestClient/src/com/company/ServerTestClient.java
index 9247895c..0f00cc09 100644
--- a/ServerTestClient/src/com/company/ServerTestClient.java
+++ b/ServerTestClient/src/com/company/ServerTestClient.java
@@ -22,17 +22,17 @@ public static void main(String[] args) {
System.out.println("Connection to server established ");
toServer = new DataOutputStream(socket.getOutputStream());
fromServer = new DataInputStream(socket.getInputStream());
- objectToServer = new ObjectInputStream(socket.getInputStream());
- objectFromServer = new ObjectOutputStream(socket.getOutputStream());
while (Continue == true) {
- Scanner testScanner = new Scanner();
- objectToServer.writeUTF(testScanner);
+ double testData = 1;
+ System.out.println(testData);
+ toServer.writeDouble(testData);
- testData = objectFromServer.readString();
+ testData = fromServer.readDouble();
System.out.println(testData);
+
}
}
From 369387ff75ecde6cb2dbae7b6d687d581c4e72e8 Mon Sep 17 00:00:00 2001
From: signetoftgaard <56248226+signetoftgaard@users.noreply.github.com>
Date: Fri, 16 Oct 2020 13:47:15 +0200
Subject: [PATCH 31/73] now with comments
comments
---
Tank game - Client/.idea/workspace.xml | 43 ++++++----------
.../Tank game - Client/Game$1.class | Bin 649 -> 577 bytes
.../Tank game - Client/Game$2.class | Bin 784 -> 784 bytes
.../production/Tank game - Client/Game.class | Bin 4389 -> 4457 bytes
.../production/Tank game - Client/Map.class | Bin 732 -> 513 bytes
.../production/Tank game - Client/Map2.class | Bin 727 -> 0 bytes
.../Tank game - Client/Projectile.class | Bin 1991 -> 1976 bytes
.../production/Tank game - Client/Tank.class | Bin 2326 -> 2687 bytes
Tank game - Client/src/Game.java | 48 +++++++++---------
Tank game - Client/src/Map.java | 9 ++--
Tank game - Client/src/Projectile.java | 11 ++--
Tank game - Client/src/Tank.java | 46 ++++++++++++-----
12 files changed, 80 insertions(+), 77 deletions(-)
delete mode 100644 Tank game - Client/out/production/Tank game - Client/Map2.class
diff --git a/Tank game - Client/.idea/workspace.xml b/Tank game - Client/.idea/workspace.xml
index 09c7a2be..6127e780 100644
--- a/Tank game - Client/.idea/workspace.xml
+++ b/Tank game - Client/.idea/workspace.xml
@@ -2,31 +2,18 @@
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
+
-
-
-
@@ -163,22 +150,22 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
@@ -207,9 +194,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/Tank game - Client/out/production/Tank game - Client/Game$1.class b/Tank game - Client/out/production/Tank game - Client/Game$1.class
index 11d063aa68f9cbfe2ba8ab960dfb0416e2bcad77..1c0dee1dc0f6341dc5c2cfe52cc5bc8cd2479033 100644
GIT binary patch
delta 202
zcmYj}I|{;36hzO5k>A3KuM^!W3~EL#KL}^w8D6p$l?)(msLI$p`W}#r|&?GOAbV_VQ3}
u^9$xm>#Q75lbl~~XtMpI*&od^Ce=D(;y2TbnL6B|1fd;%3;z+#b>Ks7^Rj<<;#goYWhrBs
z%t*q}aM!oJ@~#)e;At4|pwJr~|SXXWQxY%G*
zN`7k9-q>P$!n#n8wJZDx8#5i+h+<6RkC|5ve@RM*8M^=A#V@>|$&O$NyTV26DFjkE
QZC!;)uFDX@s#yAd1IcY4*8l(j
diff --git a/Tank game - Client/out/production/Tank game - Client/Game$2.class b/Tank game - Client/out/production/Tank game - Client/Game$2.class
index 9ece2f1f3adf5811d869a01c6e9c3e9a4b114e6a..8cc0c26bef220f797590225f8d5a0d0b5d5864ac 100644
GIT binary patch
delta 13
UcmbQhHi2!!E+)p3$-9|C0U=Xr!|e#SO^)LE>mZlZY{K8Wp+_^
zp`5#JA|t9nAS@Q$SO!@a(M@;VbyarNeL+1(qYnKa
zO__eR#^DG{RcKcym4K5DhBZcrD3pxEhmzTN8GU3lE|67l_Qf;d{CLb)?f*!%g=4R-zc2DC1o#r=9&uy2Z
zyGYyet*oIUiRYwLBL8*%T*W*}$AqFh{CTHRsSnyhx-}`>W^31lYb+N<(w=*G|AFX@
ze<8X+RDqb0mHTtutPzbnaMH{wcH$!>zITi7J#@2|xby}&M3TddafB&axX)4Ya-OA)
zXB=lvJin%$cXaZBlYAt?CrtQ3)!kvE1UJq^Gb@Oz~3yj-^$5N
z*$-6ZJ2BI64Y*HB>Xy!^s7te%Taxl5+qi8$adkPSgg$L*<&T>()RPtU7o|5Ue#QuL
znSET5x5KFK~iSE
G;?ggqe36&{
delta 574
zcmX|<-Aj{k6vsc$v&WG>k8fehoPyg7b=B1QQlgSUE{8L08HN=xZ4@8S2|{nY*1qvsfXk+@&g
z=+$<6C?iw-`i9n+$0#!v31&6S(P%O>7K_ftBU2i-+Pa|0dFCwU8Pu>RqLb6}(UfJp
z*A3||SCIpysc-gPBlj!0Xuw0&X5KTrJGj(m(|foC52bi1qmgoYaWX;$H>u=UV2ALpo7FRi++7&ZxbW9x9r@Zopc)Mrkof0wGiLcW1CvHwYD
znu%R(E1LHF_ZJn+uR0WWKA}?Tjx=X8Z595vB-K)W_)eG-8QzM?aZx95(JsKPl68v;
zNSxs^JxmjnO$4|lVD|~L&H$TS;4y=2agk>X@rq0Aa3yQdi-ArH0x4EIIhj>@#t0wz
zBxgGd>=kFr`;wNC_X}O~si}f-M?@AhELS7KljH~+H1L3C+40YUp`1;b{Ydo}zG#`_
zDA$GehSU~lW04MSbBZNd<6R+MCM2{2tZ&jQO<+?^KF^ff$?3=9mG4C)iPHcysj)L~=Q@buISo9xPH&&F86$iP@Rc`l=(E)#24)~B&!EVl1f)SM
VWw1^VO9jYc0_sr(iZd~&0RSci5nliR
delta 406
zcmZ{eOG*Pl6h%)Z-R5Ka9d%kwC&o__qpjdX{D3%+fFlQj6QOAmh=h)xAQ1#{1ro9n
z%|H-z0j|MKxB>B12OHjb9kiOQD}`}*ynm{2j{a-ePLaU1$mv05psDU#rTev;F^kn|=|rJA
zvTqg1ouJtW8|}T`rpn*Pu{9%^Z1T*bC`cV+LGN*N}L|?vvH|6uV&XavlC(S;N@+`#dO=j$4G*yaAtJdE0u;pZ*1m0A8K+8I!XM;&
zkccXQ#F7Ocg*anJRAPZ8&)j=v=FFM7zkYxF0pJmK9TZTsVYw)wtWZ4C=L+SgQ4*!k
zc+XpPSwr6Qnvhjg5mA)N0=Hb`&&|+6Hj#O*l3t=E+=Rj{o&tFa
z`c>}|%4;|a*xvdARj;!^<4cx)n|6&Q;9FSWqmZVKD%!N`L^pE+ba00^Qe}-*c9PZw
zw%R~>+3+Xpg)97y)`wcn`-sjh=<2CMbCdIr1u5*+62h7~c<_w5$^JLNQu(p8ve*mBr
Be@*}Z
diff --git a/Tank game - Client/out/production/Tank game - Client/Projectile.class b/Tank game - Client/out/production/Tank game - Client/Projectile.class
index 8ca895d89c159fb145e306e71d69fd54f9d18d3c..e78a55175eec73fcc4699ad6f80b9d09b0dd539a 100644
GIT binary patch
delta 1088
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
K6x?yN?*0Y3z7T@|
delta 1259
zcma)6%T7~K6kX@`wm`Y%C67P>ktnnkEiVNM@)+eS(O{!-9a%Nhc=ENX$+6
z04GiyK!Sjh5N9L~ocbG%m5A${mO?_JHo152v(G+zt-bcS-OpXgv48#jc?UofUa#4|
zh_V7)G+;%8K)Ndw>KPo3PB**5cBG=ofDg@PSn~CQ93Iqb~a5}D{I|V%kuHm}5r(JT`(TDyN+%PbJLGy>GDD6Yo
zzz_xnEMv0^azA3=mRc`NM$K`{H?vbOGFS9E-QseG&0XD>nMx)d(TSOH9&))u=DuF;
zw~3-U9LUs3&>z48}m|-$E+fx
z@q`^N);-T?J+i4#4(>5C$Q+;<_c1~%y-{WeB^HFtjZh5Bch2^
zOyIF1(_zb3WEf;Zo&qwIZ%qPCVoK(6|2xabLIai-r)M37JMR#Z)>*p?pJxNEWxlGG
zturHjI$pV|m8;fm6hw+kJe#=S)761OeIR~t^-WBO_xtN&m31wU!cg;l}}YJI%db{bn>ZHi%nelgph_IPh=eq
zl|Awijy1w)s-+AylS|}SAbcaHiut$W2??K?D%6jz&<-@-^
diff --git a/Tank game - Client/src/Game.java b/Tank game - Client/src/Game.java
index 3ffeb031..8c2fbba7 100644
--- a/Tank game - Client/src/Game.java
+++ b/Tank game - Client/src/Game.java
@@ -17,7 +17,9 @@ public class Game extends Application {
boolean forward = false;
boolean backward = false;
+
private Pane root = new Pane(); //initializes a Pane called root
+
//size of the window
int width = 1200;
int height = 700;
@@ -25,11 +27,12 @@ public class Game extends Application {
private Tank player = new Tank(300, 300, 70, 40, "1", Color.BLUE);
private Tank player2 = new Tank(100,100,70,40, "2", Color.BISQUE);
- Tank[] tanks = {player, player2};
- private Map map = new Map(width, height);
+ Tank[] tanks = {player, player2};//puts the tanks into an array
+
+ private Map map = new Map(width/2, height/2);
- private Parent createContent() { //creates the "draw" function
+ private Parent createContent() { //creates the "draw" function - creates a Parent and returns it
root.setPrefSize(width, height); //sets width and height of window
root.getChildren().add(player); //adds tank as a child
root.getChildren().add(player2);
@@ -46,37 +49,32 @@ public void handle(long now) {
return root; //returns the root
}
- public void update() {
+ public void update() {//function where everything that happens every frame is called
//moves ALL bullets on the map
for (int i = 0; i < projectiles.length; i++) {
- if (projectiles[i] != null) {
- projectiles[i].moveBullet(map);
+ if (projectiles[i] != null) { //only does this function if there are bullets in the array
+ projectiles[i].moveBullet(map);//moves bullets
//removes a tank if hit
- if(projectiles[i].collision(tanks) != null){
- //root.getChildren().remove(projectiles[i].collision(tanks));
- //root.getChildren().remove(projectiles[i]);
- //projectiles[i] = null;
+ if(projectiles[i].collision(tanks) != null){//only does this if there is a hit tank
+ root.getChildren().remove(projectiles[i].collision(tanks));//removes the tank visually
+ root.getChildren().remove(projectiles[i]);//removes the bullet visually
+ projectiles[i] = null;//removes the bullets from the array
}
}
}
-
//checks the lifespan and removes bullet if it is over a threshold
- int threshold = 300;
+ int threshold = 300; //threshold - the bullets are removed after 300 frames
for (int i = 0; i < projectiles.length; i++) {
- if (projectiles[i] != null && projectiles[i].getLifespan() >= threshold) {
- root.getChildren().remove(projectiles[i]);
- projectiles[i] = null;
+ if (projectiles[i] != null && projectiles[i].getLifespan() >= threshold) { //only does this if there are bullets on the map and if one have been alive for 300 frames
+ root.getChildren().remove(projectiles[i]); //removes the projectile child
+ projectiles[i] = null; //removes projectile from array.
}
}
-
-
-
-
if (left) { //moves if the boolean is true, this is smoother than having the move in the start function
player.rotateLeft();
}
@@ -91,10 +89,11 @@ public void update() {
}
}
-
public void start(Stage stage) throws Exception {
- Scene scene = new Scene(createContent());
- projectiles = player.getProjectiles();
+ Scene scene = new Scene(createContent()); //creates a scene with the root createContent as input
+ projectiles = player.getProjectiles(); //initializes the projectile array
+
+ //sets booleans to false if key is released
scene.setOnKeyReleased(e -> {
switch (e.getCode()) {
case LEFT:
@@ -112,7 +111,8 @@ public void start(Stage stage) throws Exception {
}
});
- scene.setOnKeyPressed(e -> { //movement switch case
+ //sets booleans to true if key is pressed
+ scene.setOnKeyPressed(e -> {
switch (e.getCode()) {
case LEFT:
left = true;
@@ -135,7 +135,7 @@ public void start(Stage stage) throws Exception {
break;
}
});
- stage.setScene(scene);
+ stage.setScene(scene);//creates a stage using the scene that uses the root
stage.show();
}
diff --git a/Tank game - Client/src/Map.java b/Tank game - Client/src/Map.java
index 10953887..1280f48f 100644
--- a/Tank game - Client/src/Map.java
+++ b/Tank game - Client/src/Map.java
@@ -2,7 +2,7 @@
import javafx.scene.shape.Rectangle;
public class Map extends Rectangle {
- final static Color color = Color.GRAY;
+ //final static Color color = Color.GRAY;
final static int width = 100;
final static int height = 100;
@@ -10,14 +10,11 @@ public class Map extends Rectangle {
Map(int x, int y){
super();
- //setHeight(height);
- //setWidth(width);
+ setHeight(height);
+ setWidth(width);
setTranslateX(x);
setTranslateY(y);
}
- void createMap(){
-
- }
}
diff --git a/Tank game - Client/src/Projectile.java b/Tank game - Client/src/Projectile.java
index 4481e9d6..1182af63 100644
--- a/Tank game - Client/src/Projectile.java
+++ b/Tank game - Client/src/Projectile.java
@@ -1,5 +1,3 @@
-//package sample;
-
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
@@ -17,16 +15,17 @@ public class Projectile extends Circle {
double angleR;
int lifespan;
- Projectile(int x, int y, Tank tank) {
+ Projectile(float x, float y, Tank tank) {
super(x, y, RADIUS); //bruger constructor fra Rectangle som er superclass
setFill(Color.HOTPINK);
this.angle = tank.getAngle(); //henter den vinkel tanken har
this.angleR = Math.toRadians(angle); //laver vinklen til radianer
- this.player = tank; //gemmer hvilken tank der har affyret
+ //this.player = tank; //gemmer hvilken tank der har affyret
setSpeed(); //kalder metoden set speed og gemmer en x og y speed
}
- void setSpeed() { //sætter x og y speed i forhold til tankens vinkel
+ void setSpeed() {
+ //sets x and y speed according the the tanks angle in radians
this.xSpeed = MAX_SPEED * Math.cos(angleR);
this.ySpeed = MAX_SPEED * Math.sin(angleR);
}
@@ -43,7 +42,7 @@ void moveBullet(Map map) {
}
- Tank collision(Tank[] tank){
+ Tank collision(Tank[] tank){ //method that returns a tank that has been hit
for (int i = 0; i < tank.length; i++) {
if (this.getBoundsInParent().intersects(tank[i].getBoundsInParent())) {
//lifespan = 300;
diff --git a/Tank game - Client/src/Tank.java b/Tank game - Client/src/Tank.java
index 66915df7..463442f2 100644
--- a/Tank game - Client/src/Tank.java
+++ b/Tank game - Client/src/Tank.java
@@ -3,12 +3,13 @@
import javafx.scene.transform.Rotate;
public class Tank extends Rectangle {
- boolean dead = false;
- private int angle = 0;
+ boolean dead = false; //is not used for anything YET
+ private int angle = 0; //variable that stores the tanks angle
private int angleIncrease = 3;
private int moveSpeed = 5;
- private Projectile[] projectiles = new Projectile[10];
- final String playerID; //either bullet or player
+ final static int MAX_PROJECTILES = 10; //max amount of projectiles a player can have at the same time
+ private Projectile[] projectiles = new Projectile[MAX_PROJECTILES]; //array with the tanks projectiles
+ final String playerID; //either bullet or player-- IS NOT UTILISED YET
Tank(int x, int y, int w, int h, String playerID, Color color) { //constructor
super(w, h, color);
@@ -18,17 +19,37 @@ public class Tank extends Rectangle {
}
public Projectile[] getProjectiles() {
- return projectiles;
+ return projectiles; //returns the tanks array of projectiles
}
- Projectile shoot() {
+ void setDead(){
+ dead = true;
+ }
+
+ Projectile shoot() { //shoot method, returns a projectile array or null
for(int i = 0; i < projectiles.length; i++){
- if(projectiles[i] == null){
- int x = ((int)getTranslateX()+(int)this.getWidth()/2);
- int y = ((int)getTranslateY()+(int)this.getHeight()/2);
- Projectile p = new Projectile(x,y, this);
- projectiles[i] = p;
- return projectiles[i];
+ if(projectiles[i] == null){ //let's the player shoot if there is an empty space in the array aka. there are less than 10 bullets on the map
+ int k = 70; //offset value
+
+ //x and y for the center of the tank
+ float centerX = (float)this.getTranslateX()+(float)this.getWidth()/2; //center of tank
+ float centerY = (float)this.getTranslateY()+(float)this.getHeight()/2;
+
+ //cos and sin for the tanks angle
+ float cos = (float)Math.cos(Math.toRadians(getAngle()*-1));
+ float sin = (float)Math.sin(Math.toRadians(getAngle()*-1));
+
+ //cos and sin multiplied with a constant, calculating the x and y offset
+ float widthOffset = cos*k;
+ float heightOffset = sin*k;
+
+ //start coordinates for x and y
+ float x = centerX+widthOffset;
+ float y = centerY-heightOffset;
+
+ Projectile p = new Projectile(x,y, this); //creates a new projectile
+ projectiles[i] = p; //puts the bullets in the bullet array
+ return projectiles[i]; //returns the array, now with bullets in it
}
}
return null;
@@ -60,5 +81,4 @@ void moveBackward() {
public int getAngle() {
return angle;
}
-
}
From a5903eb8b78e072a6b6347b95b37c2ce2f27225f Mon Sep 17 00:00:00 2001
From: AsgerLanghoff <54887248+AsgerLanghoff@users.noreply.github.com>
Date: Fri, 16 Oct 2020 14:13:37 +0200
Subject: [PATCH 32/73] test
---
Server/src/com/company/Main.java | 1 +
Server/src/com/company/WorkerRunnable.java | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/Server/src/com/company/Main.java b/Server/src/com/company/Main.java
index 8ad06c3a..8af8dfee 100644
--- a/Server/src/com/company/Main.java
+++ b/Server/src/com/company/Main.java
@@ -15,6 +15,7 @@ public static void main(String[] args) {
ServerSocket serverSocket = new ServerSocket(8000);
System.out.println("Loan Server started at " + new Date() + '\n');
System.out.println("IP address: " + Inet4Address.getLocalHost().getHostAddress());
+ final double testData;
// Number a client
int clientNo = 0;
diff --git a/Server/src/com/company/WorkerRunnable.java b/Server/src/com/company/WorkerRunnable.java
index eb022722..9bacddc3 100644
--- a/Server/src/com/company/WorkerRunnable.java
+++ b/Server/src/com/company/WorkerRunnable.java
@@ -12,6 +12,7 @@ public class WorkerRunnable implements Runnable{
protected Socket clientSocket = null;
protected String serverText = null;
+ public static double testData;
public WorkerRunnable(Socket clientSocket, String serverText) {
this.clientSocket = clientSocket;
@@ -38,7 +39,7 @@ public void run() {
while (true) {
// Calculations made by server
- double testData = isFromClient.readDouble();
+ testData = isFromClient.readDouble();
testData += 1;
//send back to client
From 1c29835202e1466298862bd66c5b04a0b851d054 Mon Sep 17 00:00:00 2001
From: signetoftgaard <56248226+signetoftgaard@users.noreply.github.com>
Date: Mon, 19 Oct 2020 13:49:30 +0200
Subject: [PATCH 33/73] ting og sager
---
Tank game - Client/.idea/workspace.xml | 19 ++++---
.../Tank game - Client/Game$1.class | Bin 577 -> 577 bytes
.../Tank game - Client/Game$2.class | Bin 784 -> 784 bytes
.../production/Tank game - Client/Game.class | Bin 4457 -> 4508 bytes
.../Tank game - Client/Projectile.class | Bin 1976 -> 2118 bytes
.../production/Tank game - Client/Tank.class | Bin 2687 -> 2698 bytes
Tank game - Client/src/Game.java | 9 ++--
Tank game - Client/src/Map.java | 3 ++
Tank game - Client/src/NewMap.java | 5 ++
Tank game - Client/src/Projectile.java | 1 +
Tank game - Client/src/Tank.java | 51 +++++++++---------
11 files changed, 50 insertions(+), 38 deletions(-)
create mode 100644 Tank game - Client/src/NewMap.java
diff --git a/Tank game - Client/.idea/workspace.xml b/Tank game - Client/.idea/workspace.xml
index 6127e780..aee2ee93 100644
--- a/Tank game - Client/.idea/workspace.xml
+++ b/Tank game - Client/.idea/workspace.xml
@@ -2,12 +2,11 @@
+
-
-
@@ -150,22 +149,22 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
diff --git a/Tank game - Client/out/production/Tank game - Client/Game$1.class b/Tank game - Client/out/production/Tank game - Client/Game$1.class
index 1c0dee1dc0f6341dc5c2cfe52cc5bc8cd2479033..60dee6a473184b909a7181bc397b233a4d4cac89 100644
GIT binary patch
delta 23
fcmX@ea*$=iDn>@l$*UPXS#=oL8FVNAWb^<4S+EAu
delta 23
fcmX@ea*$=iDn>@F$*UPXS#=rM8T2OqWb^<4S@`#tYCiBwOhN(8L
z^pB}hJ3902pfkh0z+@r!*h`$g+!_{}xLBgmI;&)yf0Dm!a`*5UD`0gW;tyGY$mQ81
zRJ^4o%UEuoaCUXqn%u_r_t8a7D1%Aer?h8`x+&-CoZop3&KCvW2a7FLy!ec6R9OG>NfGBh&UL
zXWF&y+|)hn)!AqAtU|DjxLexC+|AtwOrGPQea^ka<&5|PRrUgXzV@EoEctBeHwMQz
zu5-fVTTX6o-o&YC-`lN>ws}9Q6i%6ZPJJ5nO?7@&jx#17Q7^z12Le{;s`37C*b3|X
zs?phAYP2)FCBb0T#0fgT+l!6W+95mFvv%0?()FI0vKlx^r3p=CO``?PXiYkuXhn`_
zd1P`O7cqvmOrbq5$PE)s)@8iNOClYrGvYa9cQnhRDsDS;SvyH2FCFPjFS;;@Y)a|Q
zjr54eXesw#L?TA1ykE!55=G+`+$tJq2T772oKEVOnX`k@2i8)lWMAZ_9Ng@S5w^2a+H19TaY_eml07aZFFIAuq^!gckr!jS
zh_ps)rdTZ+tvOpIr6g3LWn{>jkB3VIvdg%bz5-Z3`co*yULnN}U@QZvk~4R5wM^DE
z%%qqVT+4cab&J?BZeTyrA%etEUSk+XxQTi}=1WF$f>E5});MClh4lUL@hZIqI|o4y
z(?O7`7O&D2o~ILdPGqXYQoFB*Ev8Xhs0g-!mGTN837aPg=ex*I6v{l^%&DGsvJfTo=#8GKz|7}8(+l54<
z1(gWhBzO-NN$QK^#dL@_Hb0RrMDux*wOEzH7YdSc(|9{2S
z(M(ED@Mfs+=6v7#%BUdS^a=QR^5587;O@gT>HKu*_6#Ar>hdf~n8R@93J&vRfNF#T
z3mdB+E(7&3pTzSH#c}8(F$wW0pGm5!Z^^iQx_n+KKt?`Mz&g32dR=tB0DE@Y!1&~K
z5v-7>varY%diJ0~s8>mWP_U5kLdO7uB@H#j4HH<@*n*-9Ue