ajout d'une fonctionnalité permettant de mettre en pause le Jeu grace à un bouton. Ajout d'un vérouillage du clavier pendant lause
This commit is contained in:
@@ -31,6 +31,6 @@ public class App {
|
||||
IO io = new IO(jeu);
|
||||
vueTetris.addKeyListener(io);
|
||||
|
||||
new TetrisBandeauControleur(vueTetris.getVueBandeauControle(), musique);//Création d'un controleur de bandeau avec la musique instanciée
|
||||
new TetrisBandeauControleur(vueTetris.getVueBandeauControle(), musique, grille);//Création d'un controleur de bandeau avec la musique instanciée
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,10 @@ public class IO implements KeyListener {
|
||||
|
||||
@Override
|
||||
public void keyPressed(KeyEvent e) {
|
||||
if (jeu.getGrille().estEnPause()){
|
||||
System.err.println("Grille est en pause");
|
||||
return;
|
||||
}
|
||||
switch (e.getKeyCode()) {
|
||||
case KeyEvent.VK_DOWN:
|
||||
jeu.getGrille().deplacerPiece(Direction.BAS);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.Controllers;
|
||||
|
||||
import org.Models.Grille;
|
||||
import org.Models.Musique;
|
||||
import org.Views.VueBandeauControle;
|
||||
|
||||
@@ -11,13 +12,15 @@ public class TetrisBandeauControleur {
|
||||
private boolean partieTerminee = false;
|
||||
private Musique musique;
|
||||
private VueBandeauControle vueControle;
|
||||
private Grille grille;
|
||||
|
||||
public TetrisBandeauControleur(VueBandeauControle vueControle, Musique musique) {
|
||||
public TetrisBandeauControleur(VueBandeauControle vueControle, Musique musique, Grille grille) {
|
||||
this.vueControle = vueControle;
|
||||
this.musique = musique;
|
||||
this.grille = grille;
|
||||
// action play/pause
|
||||
this.vueControle.getPauseButton().addActionListener(e -> switchPlayPause());
|
||||
vueControle.getQuitterButton().addActionListener(e -> {
|
||||
this.vueControle.getQuitterButton().addActionListener(e -> {
|
||||
System.out.println("Fermeture de l'application...");
|
||||
System.exit(0);
|
||||
});
|
||||
@@ -29,6 +32,7 @@ public class TetrisBandeauControleur {
|
||||
return;
|
||||
}
|
||||
partieEnPause = !partieEnPause;
|
||||
grille.setEnPause(partieEnPause);
|
||||
musique.basculePlayPause();
|
||||
vueControle.getPauseButton().setText(partieEnPause ? "PLAY" : "PAUSE");
|
||||
System.out.println(partieEnPause ? "Partie en pause" : "Partie en cours");
|
||||
|
||||
@@ -14,6 +14,7 @@ public class Grille extends Observable { // TODO: ?? implements Runnable {
|
||||
private PieceCourante pieceCourante;
|
||||
private int pieceCouranteX;
|
||||
private int pieceCouranteY;
|
||||
private boolean enPause = false;
|
||||
|
||||
public Grille(int nbLignes, int nbColonnes) {
|
||||
this.nbLignes = nbLignes;
|
||||
@@ -219,4 +220,14 @@ public class Grille extends Observable { // TODO: ?? implements Runnable {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setEnPause(boolean enPause) {
|
||||
this.enPause = enPause;
|
||||
}
|
||||
|
||||
public boolean estEnPause() {
|
||||
return enPause;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -78,7 +78,7 @@ public class Jeu extends Observable implements Runnable {
|
||||
@Override
|
||||
public void run() {
|
||||
// TODO: game logic here
|
||||
if (!jeuEnCours) {
|
||||
if (!jeuEnCours || grille.estEnPause()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user