From dcea14f47222ab17b4539517167cd842d85b474a Mon Sep 17 00:00:00 2001 From: yschl <ys037@hdm-stuttgart.de> Date: Mon, 15 Jan 2024 21:09:45 +0100 Subject: [PATCH] Add: new png's for bomb animation, InputHandler.java: Add: new option for key presses --- .../Controller/GameSceneController.java | 4 ++-- .../battlearena/Model/Entity/Player.java | 18 ++++++++++++++--- .../Model/Inputs/InputHandler.java | 19 ++++++++++++++++-- .../battlearena/Model/Map/TileFactory.java | 18 ++++++++--------- .../battlearena/Model/Map/TileManager.java | 6 ++++++ src/main/resources/textures/map/bigbomba.png | Bin 0 -> 418 bytes .../resources/textures/map/bigexplosion.png | Bin 0 -> 499 bytes src/main/resources/textures/map/bomb.png | Bin 0 -> 204 bytes src/main/resources/textures/map/bomba.png | Bin 0 -> 421 bytes .../resources/textures/map/middlexplosion.png | Bin 0 -> 488 bytes .../resources/textures/map/smallexplosion.png | Bin 0 -> 432 bytes 11 files changed, 49 insertions(+), 16 deletions(-) create mode 100644 src/main/resources/textures/map/bigbomba.png create mode 100644 src/main/resources/textures/map/bigexplosion.png create mode 100644 src/main/resources/textures/map/bomb.png create mode 100644 src/main/resources/textures/map/bomba.png create mode 100644 src/main/resources/textures/map/middlexplosion.png create mode 100644 src/main/resources/textures/map/smallexplosion.png diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java index dc9b88e8..f0e697c0 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java @@ -55,7 +55,7 @@ public class GameSceneController implements Initializable { "4 1 1 1 2 2 4 1 3 3 3 1 1 1 3 2 2 3 " + "4 1 1 1 2 2 4 1 1 1 1 1 1 1 3 2 1 3 " + "4 1 5 1 2 2 4 3 3 1 4 3 3 3 3 2 1 3 " + - "4 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 3 " + + "4 6 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 3 " + "4 1 1 1 2 2 4 3 3 1 3 3 3 3 3 2 1 3 " + "4 1 1 1 1 2 4 3 3 1 3 3 3 3 3 1 1 3 " + "4 1 1 1 1 2 4 3 3 1 3 3 3 3 3 2 2 3 " + @@ -67,7 +67,7 @@ public class GameSceneController implements Initializable { "4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3"; int horizontalTileCount = 18; int verticalTileCount = 18; - int diffTileCount = 6; + int diffTileCount = 8; int scaledTileSize = 48; diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java index 0eaf4b2c..f358c976 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java @@ -5,6 +5,7 @@ import de.hdm_stuttgart.battlearena.Controller.GameSceneController; import de.hdm_stuttgart.battlearena.Model.Inputs.InputHandler; import de.hdm_stuttgart.battlearena.Model.Map.TileManager; +import javafx.animation.AnimationTimer; import javafx.geometry.BoundingBox; import javafx.scene.canvas.GraphicsContext; import javafx.scene.image.Image; @@ -290,19 +291,30 @@ class Player implements IEntity { } } + + public void placeBomb(IEntity entity, GraphicsContext graphicsContext){ + int xTile = entity.getMapPosX() / gameSceneController.getScaledTileSize(); + int yTile = entity.getMapPosY() / gameSceneController.getScaledTileSize(); + if(inputHandler.isBomb() || inputHandler.isSdBomb()){ + TileManager.tileMap[yTile][xTile] = 7; + TileManager.tileMap[yTile-1][xTile] = 8; + TileManager.tileMap[yTile-2][xTile] = 8; + TileManager.tileMap[yTile][xTile+1] = 8; + TileManager.tileMap[yTile][xTile+2] = 8; + } + } + + @Override public void attack(IEntity entity, GraphicsContext graphicsContext) { BoundingBox hitBox; int xTile = mapPosX / gameSceneController.getScaledTileSize(); int yTile = mapPosY / gameSceneController.getScaledTileSize(); - //log.info(xTile); - //log.info(yTile); //int xTile = (int) (Math.random() * (18 - 1)); //Get xTile Coordinate +1 /-1 of playerTile //int yTile = (int) (Math.random() * (18 - 1)); //Get yTile Coordinate +1 /-1 of playerTile double dropChance = 0.5; double randomDropChance = Math.random() * 1; - //log.info(randomDropChance); //Added and subtracted numbers from variables are the pixel insets of the player sprite diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Inputs/InputHandler.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Inputs/InputHandler.java index a66f47e8..934bdce8 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Inputs/InputHandler.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Inputs/InputHandler.java @@ -19,10 +19,10 @@ public class InputHandler { } //Local Player/Player one controls - private boolean moveUp, moveDown, moveLeft, moveRight, attack; + private boolean moveUp, moveDown, moveLeft, moveRight, attack, bomb; //Local player two controls - private boolean sdMoveUp, sdMoveDown, sdMoveLeft, sdMoveRight, sdAttack; + private boolean sdMoveUp, sdMoveDown, sdMoveLeft, sdMoveRight, sdAttack, sdbomb; public void handleKeyPress(KeyEvent event) { KeyCode code = event.getCode(); @@ -48,6 +48,9 @@ public class InputHandler { attack = true; log.debug("Player attack"); break; + case Q: + bomb = true; + break; case UP: sdMoveUp = true; break; @@ -63,6 +66,9 @@ public class InputHandler { case MINUS: sdAttack = true; break; + case CONTROL: + sdbomb = true; + break; } } @@ -85,6 +91,9 @@ public class InputHandler { case E: attack = false; break; + case Q: + bomb = false; + break; case UP: sdMoveUp = false; break; @@ -100,6 +109,9 @@ public class InputHandler { case MINUS: sdAttack = false; break; + case CONTROL: + sdbomb = false; + break; } } @@ -142,4 +154,7 @@ public class InputHandler { public boolean isSdAttack() { return sdAttack; } + public boolean isBomb(){return bomb;} + public boolean isSdBomb(){return sdbomb;} + } \ No newline at end of file diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Map/TileFactory.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Map/TileFactory.java index 0da1a155..24dc7d78 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Map/TileFactory.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Map/TileFactory.java @@ -9,18 +9,18 @@ public class TileFactory { private static final Logger log = LogManager.getLogger(TileFactory.class); - public static ITile createTile(TileType tileType, TileType tileType2, Image tileSprite) { - if (tileType == TileType.WALKABLE && tileType2 == TileType.DESTRUCTIBLE) { - log.info("Tile with type: " + tileType + " " + tileType2 + " created."); + public static ITile createTile(TileType tileType, TileType destructible, Image tileSprite) { + if (tileType == TileType.WALKABLE && destructible == TileType.DESTRUCTIBLE) { + log.info("Tile with type: " + tileType + " " + destructible + " created."); return new BackgroundTile(tileSprite, true, true); - }else if (tileType == TileType.WALKABLE && tileType2 == TileType.NON_DESTRUCTIBLE) { - log.info("Tile with type: " + tileType + " " + tileType2 +" created."); + }else if (tileType == TileType.WALKABLE && destructible == TileType.NON_DESTRUCTIBLE) { + log.info("Tile with type: " + tileType + " " + destructible +" created."); return new BackgroundTile(tileSprite, true, false); - }else if (tileType == TileType.NON_WALKABLE && tileType2 == TileType.DESTRUCTIBLE) { - log.info("Tile with type: " + tileType + " " + tileType2 +" created."); + }else if (tileType == TileType.NON_WALKABLE && destructible == TileType.DESTRUCTIBLE) { + log.info("Tile with type: " + tileType + " " + destructible +" created."); return new BackgroundTile(tileSprite, false, true); - }else if (tileType == TileType.NON_WALKABLE && tileType2 == TileType.NON_DESTRUCTIBLE) { - log.info("Tile with type: " + tileType + " " + tileType2 +" created."); + }else if (tileType == TileType.NON_WALKABLE && destructible == TileType.NON_DESTRUCTIBLE) { + log.info("Tile with type: " + tileType + " " + destructible +" created."); return new BackgroundTile(tileSprite, false, false); } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Map/TileManager.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Map/TileManager.java index 0ac687da..8c66d48b 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Map/TileManager.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Map/TileManager.java @@ -46,6 +46,12 @@ public class TileManager { new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/Stone02.png")))); tileSet[5] = TileFactory.createTile(TileType.WALKABLE,TileType.NON_DESTRUCTIBLE, new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/finalheart.png")))); + tileSet[6] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/bomba.png")))); + tileSet[7] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/bigbomba.png")))); + tileSet[8] = TileFactory.createTile(TileType.WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/middleexplosion.png")))); } catch (Exception e) { log.error(e); } diff --git a/src/main/resources/textures/map/bigbomba.png b/src/main/resources/textures/map/bigbomba.png new file mode 100644 index 0000000000000000000000000000000000000000..397890b30b50d8f6db539981082f099e4299f8c3 GIT binary patch literal 418 zcmV;T0bTxyP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp) z=>Px$TuDShR5(wSQ?W|KKop#{(c=n5KR^qAK+sAXQIj7KEGz^Io2w4Q!cVxyDvgC; zDclz%ci3Di1$((d!NN+sBHUT6%!XN#m<YE`mbY)_&3kWR25Dr!XBl{w7u%TpWbVtO zyD<QBR+ieZ);&QnLjnf2PHymce}Vn8TdaMI^DF>^H1c;{Nb>wX#m+_xj)36R^D(~e zHu3V%EddU9JLnI4r5KgynEtS586XM4lzMz{^`|NW$tYJt`6Ys4b`w}RNg9E8_C1+p z@Cw-1(O$>pSxpK+7>0=BxTL7qk|$uVbzmWzNE`u^Bwf{6xq6Bu+zy472!bG}9bTOZ zt=A-@+z0G`UIK2+5pXS<K@&-J23#qf>RO<6wSjpEoF`<Ys)0mQtxOQtC^z~c^5OM! z0oSLO{|=JFdwQE<d%fix>02n;Q}d`Y$w2yReG3ebK=u@{nAjxi7p{83MGK$g<NyEw M07*qoM6N<$g5cV;MgRZ+ literal 0 HcmV?d00001 diff --git a/src/main/resources/textures/map/bigexplosion.png b/src/main/resources/textures/map/bigexplosion.png new file mode 100644 index 0000000000000000000000000000000000000000..d2d390c838dc644ecd40b469517d01c76b1b6586 GIT binary patch literal 499 zcmV<P0Sx|$P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp) z=>Px$tw}^dR5(v<lQBp_Q51&HZE+|n5}JfSoSGVgq9u86FmP$9wjf8hY6+vZoI)@{ zAqb)t8v-3(J!w&DY-)%Sf`S%9BSEJd|Iu@MK0V8O_nvdU`=4{qRc<w_8|@b5j$BG6 zla$G1NG!1%rHQ~ODMchP@JSr}3V`&%4R6L`F)EcxoG+lA{Wz}?19KdQW5lm4%hK5N zn}9x7_Sh9Hud_-&gaLB8ZQBDUTs_weyYMka;mQ_u8Z$<vDi(`cq{|obocY^6QQv0~ zUIPNVwx)@D00n+o!;+^qUpWyVKu{7)70PMtzX1b?j(1hKKSm7zfaMP7Xf^cP1=N=> zIRG1S5=pY8_8<a~F9Q$*2mmmK_yHaz-hQaNN><kv^CsB<@H3<YY>RyK!T_X%K0q%x zk$N%>T$>FOt`^DM1Dzs`lX6Spfj&r`_M^p<D#q9BIOJAONYz6T?!o<eqOT9wdpJEd zNth9sjIoTkX(F62Un3OUxG+i}7v>#x0c@w@{Kyy}FHVkoTgdaI`5%}}YGCr6nw{4F pAPE4qG}~Q=440|F^FlGgVt=Df3+^a4qHX{H002ovPDHLkV1h4o%N+m! literal 0 HcmV?d00001 diff --git a/src/main/resources/textures/map/bomb.png b/src/main/resources/textures/map/bomb.png new file mode 100644 index 0000000000000000000000000000000000000000..6f29b3f6124a917afe8492f2e318d15dd93ff7c7 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|+B{txLoEE0 zQx*sq1g)6g_=|1N)WDzoMN>aawsw*13%>Z@s_j2d?|(@NNy(2=E+@n$WS=l%c*ASb za8)6vDdFt@|Nqkq%FEejZ_K`~HzQKw)kRhVlf{w@j~2Z+nAI?QwshC)i7^hl7&B&d z8aFt+I`W#e;KxJ5h6IH}UxGw>Ri5fQX--^_$grhYSx_iUz!c~r22WQ%mvv4FO#tY0 BO!WW& literal 0 HcmV?d00001 diff --git a/src/main/resources/textures/map/bomba.png b/src/main/resources/textures/map/bomba.png new file mode 100644 index 0000000000000000000000000000000000000000..9ab018d7f6f8c7372251cbe996f84ad5b6f2066e GIT binary patch literal 421 zcmV;W0b2fvP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp) z=>Px$Ur9tkR5(v{Qn5+{Q4pMGqelw;gZK-AskD*k-46&B7Jfh~K`i_MAqZC2*jots z0WV1xD+PNi?JP|ZqSeXlWgeT$WeMciw>vvKJ7M&{KVFt#^anEuV|pP}y%0M_hm zwNRG!1myw&m=FlRk1igp=>6%ks;&h=-oEDO>?SY(pV&LQkB!~u9!6P?>4Kqf$V3qa z<GwLal1#J;^QYZw495MqqUf&xc$Ne^KIknGzkR&Jemenz{lKYYW(*__Mf>>Pz|Hwp z<L+YOA0q&h)Z*l@nry-V$g&JYQN$jC_!XBl5N+SAP7lI$cmd9c01`~oIoXE?7*2BY zfeAXCR6gMTRGg8f>Dp#Ka1H9liy44iC4f4JpDqCDU@O$`-gtsVlJvdZ;}yJ>JrfV6 zX69tPB@yX?PCGGy>PGUyy?)NkRIH0DNYy%h&rEMCK45|XvS(A_I$iz&@EFxai0(lD P00000NkvXXu0mjfu1vZx literal 0 HcmV?d00001 diff --git a/src/main/resources/textures/map/middlexplosion.png b/src/main/resources/textures/map/middlexplosion.png new file mode 100644 index 0000000000000000000000000000000000000000..843dbf6549a384cf54b32445326531920fc40391 GIT binary patch literal 488 zcmV<E0T=#>P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp) z=>Px$qDe$SR5(vvQ$0%qK@goyqenzV!732Z{D3H?(nccs0~C}rf)KH_5d^WY(<apw zo*>u=Li`2ZAwp7F*!zWrMVbT^gNn$?o4dKp-4M9l$-Xyl-s~E`>DssNE+K~cvh@Db z<u5|k#t`AmaDSGpC7NEV(cQ&1=L`s*W>07|s4xhDgSRhVR2p~UoL)?=)@Wqok%A?c z%rO=1O71gGNF@PSD2WtGZuw@1!3a|ij&O#nB0wOm2w;BQqx$OrO*E<@$n^BY1X^Od ze9l`a0}x;DaEoU04w2y>i83b8<_G`;=o8U7E%4eqC?>p$TM+p$6V+ny!eA)O|6r2q zvrXRW784$byL?K(QE#2f7`HRoti}_<NE05wEG=C~1T3S50x{BDHCT$<;(UK>IN z`KX@0D}0eaAU93=6B2+VARUr*F%&g+pDd(a{_g2X5=N;jKD0977?oO{LOWMrUU68n z$aIj?)v=fV5+>faGE~YtiJK;b?6@H+|LyWv{Y97eOrTv&^buWcox?i-82xh#njrmf e(r+S7j{QG~m*+*p2za&t0000<MNUMnLSTY5kJSSJ literal 0 HcmV?d00001 diff --git a/src/main/resources/textures/map/smallexplosion.png b/src/main/resources/textures/map/smallexplosion.png new file mode 100644 index 0000000000000000000000000000000000000000..9101661a8083d755d5a43b32ef1e7ec2d62901bd GIT binary patch literal 432 zcmV;h0Z;ykP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp) z=>Px$YDq*vR5(wKQ@ct7Q4pP*MwdX86jnk6^8pH`vk`({AP8Crg6aJMi<CB2X(9-M zjo=@+Vq+==tyM(3RKbWrtya!l&oJ&r@DkX2XXcza^GHa0o$U2<BsfzOWf^{r^ozrL z2qK7?o-9k2sY_@JAb^1+xFhiT`9m6WNsP`NklegPzY=%@GZ6#!;g3SvkbozgUF@p@ z8bQEP@|js0<QE8hFl$8*d`U~SL?q}>s7w`jz<s}@0oBbDS(|-Vg4@$w1LRd10UYQB zv#xA)rMms7@q?qfTpqU!>r4FA0}>dxS&5+ZO}gy`neXlBlM_O`5x@cYjanj4%ZJk1 zyNlpvMFtx)1qEzmIKPT};FkvP#q|Tlql|R5W2N~~Vq!|bt%4Kvk)0#un_I|a_-YA% z&E0qWp<famqf?8!O~J3Sm&v=&&fPEq2C<2L(>wv~m;%(`Z6%BY0X$AwVGr22{2%8( az4-=Q!Qe$*o1+i_0000<MNUMnLSTZPq`G<l literal 0 HcmV?d00001 -- GitLab