diff --git a/code/ressources/fxml/viewAvatar.fxml b/code/ressources/fxml/viewAvatar.fxml index 4c77c9a..3ab4513 100644 --- a/code/ressources/fxml/viewAvatar.fxml +++ b/code/ressources/fxml/viewAvatar.fxml @@ -1,21 +1,13 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/code/ressources/fxml/viewGame.fxml b/code/ressources/fxml/viewGame.fxml deleted file mode 100644 index 4503386..0000000 --- a/code/ressources/fxml/viewGame.fxml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/ressources/fxml/viewGame2.fxml b/code/ressources/fxml/viewGame2.fxml new file mode 100644 index 0000000..4e73a7b --- /dev/null +++ b/code/ressources/fxml/viewGame2.fxml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/ressources/image/terrain/star.png b/code/ressources/image/terrain/star.png new file mode 100644 index 0000000..f710027 Binary files /dev/null and b/code/ressources/image/terrain/star.png differ diff --git a/code/src/controller/GameConfigMenuController.java b/code/src/controller/GameConfigMenuController.java index 2dadded..54609ab 100644 --- a/code/src/controller/GameConfigMenuController.java +++ b/code/src/controller/GameConfigMenuController.java @@ -32,7 +32,7 @@ public class GameConfigMenuController implements Initializable { @FXML private ImageView ImageChange; @FXML private ToggleGroup group; - private String personnage; + private int personnage; private int difficulty; @Override @@ -42,42 +42,41 @@ public class GameConfigMenuController implements Initializable { radioButton3.setToggleGroup(group); } - @FXML - void changeSkin1(ActionEvent event){ + @FXML void changeSkin1(ActionEvent event){ ImageChange.setImage(new Image("/image/personnage/Perso1.2.png")); - this.personnage = "1"; + this.personnage = 1; } - @FXML - void changeSkin2(ActionEvent event){ + @FXML void changeSkin2(ActionEvent event){ ImageChange.setImage(new Image("/image/personnage/Perso2.2.png")); - this.personnage = "2"; + this.personnage = 2; } - @FXML - void changeSkin3(ActionEvent event){ + @FXML void changeSkin3(ActionEvent event){ ImageChange.setImage(new Image("/image/personnage/Perso3.2.png")); - this.personnage = "3"; + this.personnage = 3; } - @FXML - void setDifficulty1(MouseEvent event){ + @FXML void setDifficulty1(MouseEvent event){ this.difficulty = 1; } - @FXML - void setDifficulty2(MouseEvent event){ + @FXML void setDifficulty2(MouseEvent event){ this.difficulty = 2; } - @FXML - void setDifficulty3(MouseEvent event){ + @FXML void setDifficulty3(MouseEvent event){ this.difficulty = 3; } @FXML void launchGame(MouseEvent event) throws Exception { - Parent pane = FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/viewGame.fxml"))); - pane.setId(personnage); + FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/viewGame2.fxml")); + Parent pane = loader.load(); + GamePlayController gp = loader.getController(); + gp.difficulty = this.difficulty; + gp.perso = this.personnage; + gp.gameLauncher(); + Stage a = new Stage(); a.setScene(new Scene(pane, 1300, 900)); - a.setResizable(false); + a.setResizable(false); a.show(); Stage stage = (Stage) levelRoot.getScene().getWindow(); stage.close(); diff --git a/code/src/controller/GamePlayController.java b/code/src/controller/GamePlayController.java index e3431a2..42b42ee 100644 --- a/code/src/controller/GamePlayController.java +++ b/code/src/controller/GamePlayController.java @@ -30,6 +30,7 @@ public class GamePlayController implements Initializable { @FXML public AnchorPane levelRoot; @FXML public ImageView de; @FXML public ImageView creatureImageView = new ImageView(); + @FXML public ImageView playerImagePerso; PersoController persoController = new PersoController(); Case caseActuelle; @@ -39,28 +40,20 @@ public class GamePlayController implements Initializable { int i, diceNumber; Thread personnage; + public int difficulty; + public int perso; + @FXML @Override public void initialize(URL url, ResourceBundle resourceBundle) { - String id = levelRoot.getId(); - if(id.equals("1")){ - levelRoot.getChildren().addAll(mapController.mapInitialisation(1), persoController.playerInitialisation(1,2, mapController.getMap()),creatureImageView); - persoController.setActualCase(mapController.getStartCase()); - GameLoop loop = new GameLoop(1, mapController.getMap(), creatureImageView); - loop.start(); - } - else if(id.equals("2")){ - GameLoop loop = new GameLoop(2, mapController.getMap(), creatureImageView); - loop.start(); - levelRoot.getChildren().addAll(mapController.mapInitialisation(2), persoController.playerInitialisation(2,2, mapController.getMap())); - persoController.setActualCase(mapController.getStartCase()); - } - else{ - GameLoop loop = new GameLoop(2, mapController.getMap(), creatureImageView); - loop.start(); - levelRoot.getChildren().addAll(mapController.mapInitialisation(3), persoController.playerInitialisation(3,2, mapController.getMap())); - persoController.setActualCase(mapController.getStartCase()); - } + } + + public void gameLauncher(){ + levelRoot.getChildren().addAll(mapController.mapInitialisation(this.difficulty), persoController.playerInitialisation(this.difficulty,this.perso, mapController.getMap())); + persoController.setActualCase(mapController.getStartCase()); + playerImagePerso.setImage(new Image("image/personnage/Perso" + this.perso + ".2.png")); + GameLoop loop = new GameLoop(this.difficulty, mapController.getMap(), creatureImageView); + loop.start(); } @@ -234,11 +227,11 @@ public class GamePlayController implements Initializable { persoImageView.setImage(imagePerso1); persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase); })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time7), event -> { + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(800), event -> { persoImageView.setImage(imagePerso3); persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase); })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time8), event -> { + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(900), event -> { persoImageView.setImage(imagePerso2); persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase); })); diff --git a/code/src/controller/MapController.java b/code/src/controller/MapController.java index 0abe998..38bcc48 100644 --- a/code/src/controller/MapController.java +++ b/code/src/controller/MapController.java @@ -9,6 +9,7 @@ import model.Case; import model.Map; public class MapController implements Initializable { + private final Map map = new Map(32,30); private final Image b = new Image("/image/terrain/chemin.png"); private final Image a = new Image("/image/terrain/herbe.png"); @@ -32,10 +33,10 @@ public class MapController implements Initializable { private final Image t = new Image("/image/terrain/tronc1g.png"); private final Image u = new Image("/image/terrain/tronc1d.png"); private final Image v = new Image("/image/terrain/souche1.png"); + private final Image w = new Image("/image/terrain/chemin.png"); private final Image x = new Image("/image/terrain/multiarbre1.png"); private final Image y = new Image("/image/terrain/multiarbre2.png"); - - private final Image w = new Image("/image/terrain/chemin.png"); + private final Image z = new Image("/image/terrain/star.png"); @Override diff --git a/code/src/controller/PersoController.java b/code/src/controller/PersoController.java index b2b7713..3fbb131 100644 --- a/code/src/controller/PersoController.java +++ b/code/src/controller/PersoController.java @@ -12,6 +12,8 @@ public class PersoController { @FXML public ImageView persoImageView; + @FXML + public ImageView playerImagePerso; private Avatar avatar; @@ -22,19 +24,12 @@ public class PersoController { switch (perso) { case 1: this.avatar = new Avatar(1, "image/personnage/Perso1.",map.getCoordStartX(), map.getCoordStartY()); - System.out.println("Size tile :" + map.getSizeTile()); - System.out.println("Coord X Start" + map.getCoordStartX()); break; case 2: this.avatar = new Avatar(2, "image/personnage/Perso2.", map.getCoordStartX(), map.getCoordStartY()); - System.out.println("Size tile : " + map.getSizeTile()); - System.out.println("Coord X Start : " + map.getCoordStartX()); - System.out.println("Coord Y Start : " + map.getCoordStartY()); break; case 3: this.avatar = new Avatar(3, "image/personnage/Perso3.", map.getCoordStartX(), map.getCoordStartY()); - System.out.println("Size tile :" + map.getSizeTile()); - System.out.println("Coord X Start" + map.getCoordStartX()); break; default: System.out.println("Erreur de choix du personnage [createPerso] unknown number"); diff --git a/code/src/launcher/Main.java b/code/src/launcher/Main.java index 87a9038..e9a7db7 100644 --- a/code/src/launcher/Main.java +++ b/code/src/launcher/Main.java @@ -4,15 +4,11 @@ import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; -import javafx.scene.media.MediaPlayer; import javafx.stage.Stage; import model.*; -import javafx.scene.media.Media; -import java.io.File; import java.io.*; import java.util.ArrayList; -import java.util.List; import java.util.Objects; public class Main extends Application { diff --git a/code/src/model/Bonus.java b/code/src/model/Bonus.java new file mode 100644 index 0000000..651d934 --- /dev/null +++ b/code/src/model/Bonus.java @@ -0,0 +1,35 @@ +package model; + +public enum Bonus { + + MOVE_FORWARD_1, + MOVE_FORWARD_3, + MOVE_FORWARD_5, + MOVE_FORWARD_8, + NEW_DICE; + + public Bonus randomGet(){ + int i = (int) (Math.random() * 8); + switch (i) { + case 0: + case 1: + case 2: + return Bonus.MOVE_FORWARD_1; + + case 3: + case 4: + return Bonus.MOVE_FORWARD_3; + + case 5: + case 6: + return Bonus.MOVE_FORWARD_5; + + case 7: + return Bonus.MOVE_FORWARD_8; + + case 8: + return Bonus.NEW_DICE; + } + return null; + } +} diff --git a/code/src/model/BonusCase.java b/code/src/model/BonusCase.java new file mode 100644 index 0000000..86174d6 --- /dev/null +++ b/code/src/model/BonusCase.java @@ -0,0 +1,9 @@ +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); + Bonus bonus1 = bonus.randomGet(); + } +} diff --git a/code/src/model/Malus.java b/code/src/model/Malus.java new file mode 100644 index 0000000..c75f75a --- /dev/null +++ b/code/src/model/Malus.java @@ -0,0 +1,31 @@ +package model; + +public enum Malus { + + MOVE_BACKWARD_1, // Recule de 1 + MOVE_BACKWARD_3, // Recule de 3 + MOVE_BACKWARD_5, // Recule de 5 + LAST_POSITION; // Retour a la position initiale + + public Malus randomGet(){ + int i = (int) (Math.random() * 8); + switch (i) { + case 0: + case 1: + case 2: + return Malus.MOVE_BACKWARD_1; + + case 3: + case 4: + return Malus.MOVE_BACKWARD_3; + + case 5: + case 6: + return Malus.MOVE_BACKWARD_5; + + case 7: + return Malus.LAST_POSITION; + } + return null; + } +} diff --git a/code/src/model/MalusCase.java b/code/src/model/MalusCase.java new file mode 100644 index 0000000..2d60399 --- /dev/null +++ b/code/src/model/MalusCase.java @@ -0,0 +1,10 @@ +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); + Malus malus1 = malus.randomGet(); + } + +}