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();
+ }
+
+}