Ajout fin du jeu

main
ZIRTR0X 3 years ago
parent 9aabe3a3a3
commit 911793b2fc

@ -11,9 +11,11 @@ import javafx.scene.image.WritableImage;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Text;
import javafx.util.Duration;
import model.Case;
import model.GameLoop;
import model.GameTime;
import model.Map;
import java.io.IOException;
@ -39,6 +41,10 @@ public class GamePlayController implements Initializable {
String pathPerso;
int i, diceNumber;
Thread personnage;
boolean finJeu = false;
GameTime gameTime;
GameLoop loop;
Text textEnd;
public int difficulty;
public int perso;
@ -52,10 +58,37 @@ public class GamePlayController implements Initializable {
levelRoot.getChildren().addAll(mapController.mapInitialisation(this.difficulty), persoController.playerInitialisation(this.difficulty,this.perso, mapController.getMap()), creatureImageView);
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 = new GameLoop(this.difficulty, mapController.getMap(), creatureImageView);
loop.start();
Text text = new Text();
text.setText("Time : ");
text.setX(1000);
text.setY(50);
text.setFill(Color.WHITE);
text.setStyle("-fx-font: 20 arial;");
Text textTimer = new Text();
textTimer.setText("");
textTimer.setX(1070);
textTimer.setY(50);
textTimer.setFill(Color.WHITE);
textTimer.setStyle("-fx-font: 20 arial;");
textEnd = new Text();
textEnd.setText("");
textEnd.setX(500);
textEnd.setY(500);
textEnd.setFill(Color.WHITE);
textEnd.setStyle("-fx-font: 100 arial;");
levelRoot.getChildren().addAll(text,textTimer,textEnd);
gameTime = new GameTime(textTimer);
gameTime.start();
}
public void timer(){
if(finJeu){
gameTime.stop();
loop.stop();
}
}
public void movePlayerNextCase() throws InterruptedException {
persoImageView = persoController.persoImageView;
@ -79,7 +112,7 @@ public class GamePlayController implements Initializable {
int time6 = 600;
int time7 = 700;
int time8 = 800;
if(caseActuelle != null){
//animation déplacement vers la droite
if (caseActuelle.getCoordX() > caseAncienne.getCoordX()) {
System.out.println(pathPerso + "7.png");
@ -237,6 +270,14 @@ public class GamePlayController implements Initializable {
}));
timeline.play();
}
if(caseActuelle.isEnd() == true){
textEnd.setText("Fin");
}
}else{
System.out.println("Fin du jeu");
finJeu = true;
timer();
}
}
public void lancerDe(ActionEvent actionEvent) throws InterruptedException {

@ -37,6 +37,7 @@ public class MapController implements Initializable {
private final Image x = new Image("/image/terrain/multiarbre1.png");
private final Image y = new Image("/image/terrain/multiarbre2.png");
private final Image z = new Image("/image/terrain/star.png");
private Case case1;
@Override
@ -47,12 +48,17 @@ public class MapController implements Initializable {
public void createMap(int difficulty) {
int[][] coordFirstDifficultyMap = {{0,24},{1,24},{2,24},{3,24},{4,24},{5,24},{5,23},{5,22},{5,21},{5,20},{5,19},{5,18},{6,18},{7,18},{8,18},{9,18},{10,18},{11,18},{12,18},{12,17},{12,16},{12,15},{12,14},{12,13},{12,12},{11,12},{10,12},{9,12},{8,12},{7,12},{6,12},{5,12},{4,12},{3,12},{3,11},{3,10},{3,9},{3,8},{3,7},{3,6},{3,5},{3,4},{3,3},{4,3},{5,3},{6,3},{7,3},{8,3},{9,3},{10,3},{11,3},{12,3},{13,3},{14,3},{15,3},{16,3},{17,3},{18,3},{19,3},{19,4},{19,5},{19,6},{19,7},{19,8},{19,9},{19,10},{20,10},{21,10},{22,10},{23,10},{24,10},{24,11},{24,12},{24,13},{24,14},{24,15},{24,16},{24,17},{24,18},{24,19},{24,20},{24,21},{24,22},{24,23},{24,24},{25,24},{26,24},{27,24},{28,24},{29,24}};
//int[][] coordFirstDifficultyMap = {{0,24},{1,24},{2,24},{3,24},{4,24},{5,24},{5,23},{5,22},{5,21},{5,20}};
if (difficulty == 1) {
int j = 1;
for(int[] i : coordFirstDifficultyMap){
boolean bool = j == 1;
System.out.println("Taille case :" +coordFirstDifficultyMap.length);
Case case1 = new Case(j, i[0], i [1], bool, false, map);
if(j == coordFirstDifficultyMap.length){
case1 = new Case(j, i[0], i [1], bool, true, map);
}else{
case1 = new Case(j, i[0], i [1], bool, false, map);
}
map.addCase(case1);
j++;
}

@ -57,4 +57,10 @@ public class GameLoop {
};
timer.start();
}
public void stop() {
System.out.println("GameLoop.stop()");
timer.stop();
timer.interrupt();
}
}

@ -0,0 +1,41 @@
package model;
import controller.CreatureController;
import javafx.fxml.FXML;
import javafx.scene.image.ImageView;
import javafx.scene.text.Text;
public class GameTime {
private Thread timer;
private Text textTimer;
public GameTime(Text textTimer) {
this.textTimer = textTimer;
}
public void start() {
System.out.println("GameTime.start()");
timer = new Thread("timer") {
public void run() {
int time = 0;
while (true) {
textTimer.setText(String.valueOf(time));
time++;
try {
timer.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
timer.start();
}
public void stop() {
System.out.println("GameTime.stop()");
timer.stop();
}
}

@ -56,7 +56,12 @@ public class Map {
if(c == this.map.get(i)){
j=i+1;
System.out.println("i : "+i+" j : "+j);
try {
return this.map.get(j);
}catch (IndexOutOfBoundsException e){
return null;
}
}
}
return c;

Loading…
Cancel
Save