From 56934d234cb9aafefab1d5e0a5d35972847b3602 Mon Sep 17 00:00:00 2001 From: ZartaX0O3 Date: Wed, 19 Jan 2022 22:32:27 +0100 Subject: [PATCH] Ajout de beaucoup de choses --- code/ressources/image/terrain/pierre.png | Bin 0 -> 2819 bytes code/ressources/image/terrain/star.png | Bin 41353 -> 0 bytes code/src/controller/CreatureController.java | 5 - code/src/controller/GamePlayController.java | 132 +++++++++--------- code/src/controller/MapController.java | 99 ++++++------- .../src/controller/MapCreatureController.java | 3 +- code/src/controller/PersoController.java | 7 - code/src/model/Album.java | 8 +- code/src/model/BonusCase.java | 4 +- code/src/model/Case.java | 14 +- code/src/model/MalusCase.java | 4 +- code/src/model/Map.java | 15 +- 12 files changed, 139 insertions(+), 152 deletions(-) create mode 100644 code/ressources/image/terrain/pierre.png delete mode 100644 code/ressources/image/terrain/star.png diff --git a/code/ressources/image/terrain/pierre.png b/code/ressources/image/terrain/pierre.png new file mode 100644 index 0000000000000000000000000000000000000000..034a803532e5f43dca725156fdd65478e4a13c29 GIT binary patch literal 2819 zcmV+e3;gtnP)Yw@rA^?b+}PY8txnz~RTN}1<{!B3z5&feYKVdyW5DB9lI@-VH}JHPLT!1Fx9 zIW?1H*7E}%_}rU>MOzi{Im6BEEsQn9h{=z=go|;EC}j)ku_ZtX$_>>@{-f`EIkzA_ zjIy5Zv+JwtY#)ozd1bBV6* zkj4QRE* z2xEbp>l++iPZ);*kMaPeB|wNfX&Ptf+7gt_jj&*xqit(Y9$~dvLv$^yvgjv;EKPx7 zL_bcr-tS?wMn@SuN|9X0wCN{N)t6(O#FP)?Fm=Nea7GbEF|ss)mI_fALR$|)NKiuD zNv?1295{W?LtUJ~C_@rQAljhq8iZl&{zr-1H?)~B^ewbyNRtFzeL-2zYg@t?`7(o! zR>i4HlN8J40?&`%9Lle6uaP7%C}9Z0$l)OHW1Pzh)@bzg1^Ie|EL);$E;yfGkS~@9 z;~3lh9#U$6d5C-ulyS#^IPgK;D3w{QR@932(OLtlYQCF2~dDpfu zjN$Fg4SxLTM+BU~_dRegMiwV{c{zf|0cx9Js%oTh0&eZz_XEPC(2IlcmQzO2HXV$S zu%L*e1fx>0eUHU*3u86%d;uvXX2i}P4T1o5T_Z>m$i71}4A@`o&~!bB7hsnqNU{vW zG+=l4(NXmN(@*wxzh+66zO~jUZb2EL4BYd<=!o5ZgQhGTE0$S`IG&Yla4L5x3iv_j zG@@%72edR_;Cw#f`sNl*(}GffF@`7%AhZP$1~gfsED98_FL?K6gCI=#*T?7O;qugR zrGb}+d%e2au{_K1^7IYM)f$WuRF?~eeuPv4dA4&$s_Gk{-;0ub4U*lU&Q8WLndW0^aD2QwVO2idl1tEr7S!zgy;LX+3he&i{*0VM5$^zH024f z#u}}S?|FqagiHNoQ?ei#FmfLM!Z=+N~II5e#6QMVl^4DR0C zVtchlnyr|H9gXQn${D4zk88{5EUQ+GE{aJxI{wbVbIt^F;2=i2WOF(nV6?(wy>^k? z%^JT35NjnC`3l-FP!@pChP2(dR5YurQVLobXgQfQ+jw*i`BgV9DEDU2V!K&mnp%v5 zLMt?Qn8FXZi{RVqcfjn3aRMzSv~>+ase5XroK4S>ewx$Iatk#z7>6Ex-?}w(s**xt zntHRna_Tt;4nse@`;g8`b#=AFGz`e%6r24Gd}^^<y`67Z zxZ3S-tZI~}1Co4!qAsAUg3$s&H0MKs>S<%_G!2#q0i8u_zrR7-^)_UdeERa)gkE4nKOmD-#E-b;exNO= zC#ETBYt;N|ccqlnyeKa;j$`d}rk9(oiSraiS?i&1We`TX?WC4cgh3Gcz8{it80onz zsn7YG5y_nQvm~|W^La+Ad3=8GMhTWJ7DOsR;yAFy=}Abb+caJHlzFdz`S<@g{Xbp7 VVM|#!v?Blj002ovPDHLkV1n4dPEG&- literal 0 HcmV?d00001 diff --git a/code/ressources/image/terrain/star.png b/code/ressources/image/terrain/star.png deleted file mode 100644 index f7100272a23d7970a0fe0a9e01cf96e738a349d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41353 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 p6l8!X%g8Cp$jh5Ul%a~?Ql caseAncienne.getCoordX()){ - System.out.println(imagePath + "7.png"); imagePerso7 = new Image(imagePath + "7.png"); imagePerso8 = new Image(imagePath + "8.png"); imagePerso9 = new Image(imagePath + "9.png"); diff --git a/code/src/controller/GamePlayController.java b/code/src/controller/GamePlayController.java index 20ffbf7..c181b59 100644 --- a/code/src/controller/GamePlayController.java +++ b/code/src/controller/GamePlayController.java @@ -20,13 +20,15 @@ import model.Map; import java.io.IOException; import java.net.URL; +import java.util.ArrayList; import java.util.Objects; import java.util.ResourceBundle; public class GamePlayController implements Initializable { - private final int tileSize = 20 ; - private final int avancementCase = 4; + private final int avancementCase = 4; + private final PersoController persoController = new PersoController(); + private final MapController mapController = new MapController(); @FXML public ImageView persoImageView; @FXML public AnchorPane levelRoot; @@ -34,25 +36,23 @@ public class GamePlayController implements Initializable { @FXML public ImageView creatureImageView = new ImageView(); @FXML public ImageView playerImagePerso; - PersoController persoController = new PersoController(); - Case caseActuelle; - MapController mapController = new MapController(); - Case caseAncienne; - String pathPerso; - int i, diceNumber; - Thread personnage; + boolean finJeu = false; GameTime gameTime; GameLoop loop; Text textEnd; - public int difficulty; - public int perso; + public int difficulty; + public int perso; + private Case caseActuelle, caseAncienne; + private int i, diceNumber; + private Thread personnage; + private String pathPerso; - @FXML - @Override - public void initialize(URL url, ResourceBundle resourceBundle) { - } + @FXML + @Override + public void initialize(URL url, ResourceBundle resourceBundle) { + } public void gameLauncher(){ levelRoot.getChildren().addAll(mapController.mapInitialisation(this.difficulty), persoController.playerInitialisation(this.difficulty,this.perso, mapController.getMap()), creatureImageView); @@ -90,19 +90,17 @@ public class GamePlayController implements Initializable { } } - public void movePlayerNextCase() throws InterruptedException { - persoImageView = persoController.persoImageView; - caseActuelle = persoController.getActualCase(); - Map map = mapController.getMap(); - pathPerso = persoController.getPath(); - System.out.println(pathPerso); - caseAncienne = caseActuelle; - persoController.setOldCase(caseAncienne); - System.out.println(caseActuelle); - caseActuelle = mapController.getNextCase(caseActuelle); - persoController.setActualCase(caseActuelle); - Timeline timeline = new Timeline(); - timeline.setCycleCount(1); + public void movePlayerNextCase() throws InterruptedException { + + persoImageView = persoController.persoImageView; + caseActuelle = persoController.getActualCase(); + pathPerso = persoController.getPath(); + caseAncienne = caseActuelle; + persoController.setOldCase(caseAncienne); + caseActuelle = mapController.getNextCase(caseActuelle); + persoController.setActualCase(caseActuelle); + Timeline timeline = new Timeline(); + timeline.setCycleCount(1); int time1 = 100; int time2 = 200; @@ -270,7 +268,7 @@ public class GamePlayController implements Initializable { })); timeline.play(); } - if(caseActuelle.isEnd() == true){ + if(caseActuelle.isEnd()){ textEnd.setText("Fin"); finJeu = true; timer(); @@ -281,50 +279,52 @@ public class GamePlayController implements Initializable { } } - public void lancerDe(ActionEvent actionEvent) throws InterruptedException { - animationDe(); + + public void lancerDe() { + //Case actual = persoController.getActualCase(); + animationDe(); + //verification(actual); + } + + public void verification(Case actual) { + Map map = mapController.getMap(); + ArrayList array = map.getMap(); + actual = mapController.getCase(actual, diceNumber); + for (Case c : array) { + if (actual.getCoordX() == c.getCoordX() && actual.getCoordY() == c.getCoordY() && c.isBonus()) { + System.out.println("BONUS"); + System.out.println("X perso : " + actual.getCoordX() + " Y perso : " + actual.getCoordY() + " X perso : " + c.getCoordX() + " Y perso : " + c.getCoordY() + " Bonus : " + c.isBonus()); + } + if (actual.getCoordX() == c.getCoordX() && actual.getCoordY() == c.getCoordY() && c.isMalus()) { + System.out.println("MALUS"); + } } + } - public void animationDe() throws InterruptedException { - personnage = new Thread("personnage"){ - public void run(){ - diceNumber = 0; - i = 0; - Timeline timeline = new Timeline(); - timeline.setCycleCount(1); + public void animationDe() { + personnage = new Thread("personnage") { - for( i = 0; i<10; i++){ - diceNumber = (int) (Math.random()*6 +1); - String path = "image/dé/d" + diceNumber + ".png"; - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(50*i), event -> { - de.setImage(new Image(path)); - })); - } - timeline.play(); + public void run() { + i = 0; + Timeline timeline = new Timeline(); + timeline.setCycleCount(1); + + for (i = 0; i < 10; i++) { + diceNumber = (int) (Math.random() * 6 + 1); + String path = "image/dé/d" + diceNumber + ".png"; + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(50 * i), event -> de.setImage(new Image(path)))); + } + timeline.play(); + for (i = 0; i < diceNumber; i++) { try { - personnage.sleep(800); + movePlayerNextCase(); + sleep(800); } catch (InterruptedException e) { e.printStackTrace(); } - for(i=0;i array = map.getMap(); + + for (int y = 0 ; y < grid.length ; y++) { + for (int x = 0 ; x < grid[y].length ; x++) { + if(grid[y][x] != b) continue; + for(Case c : array) { + if (c.getCoordY() == y && c.getCoordX() == x && (c.isBonus() || c.isMalus())) { + ImageView imageView = new ImageView(z); + imageView.setFitWidth(tileSize); + imageView.setFitHeight(tileSize); + gridPane.add(imageView, x, y); + } + } + } + } + AnchorPane FirstAnchor = new AnchorPane(); FirstAnchor.getChildren().addAll(gridPane); return FirstAnchor; @@ -342,4 +319,8 @@ public class MapController implements Initializable { public Case getStartCase(){ return map.getStartCase(); } + + public Case getCase(Case c, int num){ + return map.getCase(c, num); + } } diff --git a/code/src/controller/MapCreatureController.java b/code/src/controller/MapCreatureController.java index e11113d..c735ecd 100644 --- a/code/src/controller/MapCreatureController.java +++ b/code/src/controller/MapCreatureController.java @@ -37,8 +37,7 @@ public class MapCreatureController { } for(int[] i : coordList){ boolean bool = j == 1; - System.out.println("Taille case creature :" +coordList.length); - Case case1 = new Case(j, i[0], i [1], bool, false, map); + Case case1 = new Case(j, i[0], i [1], bool,false,false, false, map); mapCreature.addCase(case1); j++; } diff --git a/code/src/controller/PersoController.java b/code/src/controller/PersoController.java index 3fbb131..1449e32 100644 --- a/code/src/controller/PersoController.java +++ b/code/src/controller/PersoController.java @@ -12,9 +12,6 @@ public class PersoController { @FXML public ImageView persoImageView; - @FXML - public ImageView playerImagePerso; - private Avatar avatar; private Case actualCase; @@ -77,8 +74,4 @@ public class PersoController { public void setOldCase(Case old){ this.oldCase = old; } - - public Case getOldCase(){ - return this.oldCase; - } } diff --git a/code/src/model/Album.java b/code/src/model/Album.java index 01b29b6..b5dc01c 100644 --- a/code/src/model/Album.java +++ b/code/src/model/Album.java @@ -16,10 +16,7 @@ public class Album { this.listeMusiques = listeMusiques; } - public void playlist() throws InterruptedException { - } - - public void play() throws InterruptedException { + public void play(){ musicThread = new Thread("musique") { public void run(){ @@ -30,7 +27,7 @@ public class Album { for (Musique musique : listeMusiques) { media = new Media(Objects.requireNonNull(getClass().getResource(musique.getPath())).toExternalForm()); mediaPlayer = new AudioClip(media.getSource()); - mediaPlayer.volumeProperty().setValue(0.025); + mediaPlayer.volumeProperty().setValue(0); mediaPlayer.play(); try { Thread.sleep(musique.getTemps()); @@ -51,7 +48,6 @@ public class Album { public void addList(Musique musique){ listeMusiques.add(musique); - System.out.println("add"); } public void removeList(Musique musique){ diff --git a/code/src/model/BonusCase.java b/code/src/model/BonusCase.java index 86174d6..434c5cd 100644 --- a/code/src/model/BonusCase.java +++ b/code/src/model/BonusCase.java @@ -2,8 +2,8 @@ package model; public class BonusCase extends Case { - public BonusCase(int idCase, int coordX, int coordY, boolean isStart, boolean isEnd, Map map, Bonus bonus) { - super(idCase, coordX, coordY, isStart, isEnd, map); + public BonusCase(int idCase, int coordX, int coordY, boolean isStart, boolean isBonus, boolean isMalus, boolean isEnd, Map map, Bonus bonus) { + super(idCase, coordX, coordY, isStart, isBonus, isMalus, isEnd, map); Bonus bonus1 = bonus.randomGet(); } } diff --git a/code/src/model/Case.java b/code/src/model/Case.java index 1562559..fe9cd51 100644 --- a/code/src/model/Case.java +++ b/code/src/model/Case.java @@ -6,14 +6,18 @@ public class Case { int coordY; boolean isStart; boolean isEnd; + boolean isMalus; + boolean isBonus; int sizeTile; - public Case(int idCase, int coordX, int coordY, boolean isStart, boolean isEnd, Map map) { + public Case(int idCase, int coordX, int coordY, boolean isStart, boolean isBonus, boolean isMalus, boolean isEnd, Map map) { this.sizeTile = map.getSizeTile(); this.idCase = idCase; this.coordX = coordX; this.coordY = coordY; this.isStart = isStart; + this.isBonus = isBonus; + this.isMalus = isMalus; this.isEnd = isEnd; } @@ -37,6 +41,14 @@ public class Case { return isEnd; } + public boolean isBonus() { + return isBonus; + } + + public boolean isMalus() { + return isMalus; + } + public void setIdCase(int idCase) { this.idCase = idCase; } diff --git a/code/src/model/MalusCase.java b/code/src/model/MalusCase.java index 2d60399..43208c5 100644 --- a/code/src/model/MalusCase.java +++ b/code/src/model/MalusCase.java @@ -2,8 +2,8 @@ package model; public class MalusCase extends Case{ - public MalusCase(int idCase, int coordX, int coordY, boolean isStart, boolean isEnd, Map map, Malus malus) { - super(idCase, coordX, coordY, isStart, isEnd, map); + public MalusCase(int idCase, int coordX, int coordY, boolean isStart, boolean isBonus, boolean isMalus, boolean isEnd, Map map, Malus malus) { + super(idCase, coordX, coordY, isStart, isBonus, isMalus, isEnd, map); Malus malus1 = malus.randomGet(); } diff --git a/code/src/model/Map.java b/code/src/model/Map.java index 5c5e699..ebb9e37 100644 --- a/code/src/model/Map.java +++ b/code/src/model/Map.java @@ -50,12 +50,23 @@ public class Map { } public Case getNextCase(Case c){ - int i; - int j; + int i,j; for(i = 0; i < this.map.size(); i++){ if(c == this.map.get(i)){ j=i+1; System.out.println("i : "+i+" j : "+j); + return this.map.get(j); + } + } + return c; + } + + + public Case getCase(Case c, int num){ + int j,i = 0; + for(Case cases : this.map){ + if(c == cases){ + j=i+num; try { return this.map.get(j); }catch (IndexOutOfBoundsException e){