Capacite personnage thread

This commit is contained in:
Paul Gross 2020-05-13 10:28:02 +02:00
parent d8df8f3833
commit 80f7266ffb
4 changed files with 46 additions and 6 deletions

View File

@ -3,6 +3,7 @@ package ihm.controller;
import carte.CarteEquipement; import carte.CarteEquipement;
import database.RessourceLoader; import database.RessourceLoader;
import ihm.ImageViewEquipement; import ihm.ImageViewEquipement;
import javafx.application.Platform;
import javafx.scene.Node; import javafx.scene.Node;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.control.Label; import javafx.scene.control.Label;
@ -51,6 +52,8 @@ public class JoueurIHM {
initZoneEquipement(); initZoneEquipement();
} }
private void initZoneEquipement() { private void initZoneEquipement() {
HBox hb = getPaneEquipement(); HBox hb = getPaneEquipement();
@ -67,8 +70,8 @@ public class JoueurIHM {
GridPane gp = (GridPane) iv.getParent(); GridPane gp = (GridPane) iv.getParent();
iv.setImage(im); iv.setImage(im);
iv.fitHeightProperty().bind(gp.heightProperty()); iv.fitHeightProperty().bind(gp.heightProperty());
// initButtonEffect(btn); initButtonEffect(btn);
btn.setDisable(true); //btn.setDisable(true);
btn.setText("Utiliser Effet"); btn.setText("Utiliser Effet");
estRevele = true; estRevele = true;
}); });
@ -119,12 +122,42 @@ public class JoueurIHM {
btn.setOnAction(click -> { btn.setOnAction(click -> {
System.out.println(this.joueur.getCartePersonnage().getNom() + " va user de son pouvoir"); System.out.println(this.joueur.getCartePersonnage().getNom() + " va user de son pouvoir");
this.joueur.getCartePersonnage().utiliser(); threadUtiliserCapacite();
System.out.println(this.joueur.getCartePersonnage().getNom() + " a réussi à utiliser son pouvoir"); System.out.println(this.joueur.getCartePersonnage().getNom() + " a réussi à utiliser son pouvoir");
btn.setDisable(true); btn.setDisable(true);
}); });
} }
private void utiliserCapacite() {
AnchorPane save = getZoneJoueur();
joueur.utiliserCapacite();
Pane pane = null;
Platform.runLater(() -> {
Pane p = pane;
if(save != null && save.getChildren().size() > 0) {
p = (Pane) save.getChildren().get(0);
}
if(p != null) {
setZoneJoueur(p);
}});
}
private void threadUtiliserCapacite() {
Runnable task = new Runnable() {
@Override
public void run() {
utiliserCapacite();
}
};
Thread thread = new Thread(task);
thread.setDaemon(true);
thread.start();
}
public AnchorPane getZoneJoueur() { public AnchorPane getZoneJoueur() {
return (AnchorPane) zoneJoueur.getChildren().get(1); return (AnchorPane) zoneJoueur.getChildren().get(1);
} }

View File

@ -226,9 +226,10 @@ public class GestionnaireJeu {
return null; return null;
} }
public void waitPlateau() { public void waitPlateau() {
synchronized(plateau) { Thread currentThread = Thread.currentThread();
synchronized(currentThread) {
try { try {
plateau.wait(); currentThread.wait();
} catch (InterruptedException e) { } catch (InterruptedException e) {
} }

View File

@ -272,6 +272,12 @@ public class Joueur {
} }
public void utiliserCapacite() {
if(revele) {
this.cartePersonnage.utiliser();
}
}

View File

@ -34,6 +34,6 @@ public class Emi extends CartePersonnage{
public void utiliser() { public void utiliser() {
this.getJoueur().deplacer(this.getJoueur().getCarteLieu().getVoisin()); //this.getJoueur().deplacer(this.getJoueur().getCarteLieu().getVoisin());
} }
} }