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:
ROGER
2025-05-19 21:59:38 +02:00
parent 27862eb3cd
commit a8f543114e
5 changed files with 23 additions and 4 deletions

View File

@@ -31,6 +31,6 @@ public class App {
IO io = new IO(jeu); IO io = new IO(jeu);
vueTetris.addKeyListener(io); 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
} }
} }

View File

@@ -16,6 +16,10 @@ public class IO implements KeyListener {
@Override @Override
public void keyPressed(KeyEvent e) { public void keyPressed(KeyEvent e) {
if (jeu.getGrille().estEnPause()){
System.err.println("Grille est en pause");
return;
}
switch (e.getKeyCode()) { switch (e.getKeyCode()) {
case KeyEvent.VK_DOWN: case KeyEvent.VK_DOWN:
jeu.getGrille().deplacerPiece(Direction.BAS); jeu.getGrille().deplacerPiece(Direction.BAS);

View File

@@ -1,5 +1,6 @@
package org.Controllers; package org.Controllers;
import org.Models.Grille;
import org.Models.Musique; import org.Models.Musique;
import org.Views.VueBandeauControle; import org.Views.VueBandeauControle;
@@ -11,13 +12,15 @@ public class TetrisBandeauControleur {
private boolean partieTerminee = false; private boolean partieTerminee = false;
private Musique musique; private Musique musique;
private VueBandeauControle vueControle; private VueBandeauControle vueControle;
private Grille grille;
public TetrisBandeauControleur(VueBandeauControle vueControle, Musique musique) { public TetrisBandeauControleur(VueBandeauControle vueControle, Musique musique, Grille grille) {
this.vueControle = vueControle; this.vueControle = vueControle;
this.musique = musique; this.musique = musique;
this.grille = grille;
// action play/pause // action play/pause
this.vueControle.getPauseButton().addActionListener(e -> switchPlayPause()); this.vueControle.getPauseButton().addActionListener(e -> switchPlayPause());
vueControle.getQuitterButton().addActionListener(e -> { this.vueControle.getQuitterButton().addActionListener(e -> {
System.out.println("Fermeture de l'application..."); System.out.println("Fermeture de l'application...");
System.exit(0); System.exit(0);
}); });
@@ -29,6 +32,7 @@ public class TetrisBandeauControleur {
return; return;
} }
partieEnPause = !partieEnPause; partieEnPause = !partieEnPause;
grille.setEnPause(partieEnPause);
musique.basculePlayPause(); musique.basculePlayPause();
vueControle.getPauseButton().setText(partieEnPause ? "PLAY" : "PAUSE"); vueControle.getPauseButton().setText(partieEnPause ? "PLAY" : "PAUSE");
System.out.println(partieEnPause ? "Partie en pause" : "Partie en cours"); System.out.println(partieEnPause ? "Partie en pause" : "Partie en cours");

View File

@@ -14,6 +14,7 @@ public class Grille extends Observable { // TODO: ?? implements Runnable {
private PieceCourante pieceCourante; private PieceCourante pieceCourante;
private int pieceCouranteX; private int pieceCouranteX;
private int pieceCouranteY; private int pieceCouranteY;
private boolean enPause = false;
public Grille(int nbLignes, int nbColonnes) { public Grille(int nbLignes, int nbColonnes) {
this.nbLignes = nbLignes; this.nbLignes = nbLignes;
@@ -219,4 +220,14 @@ public class Grille extends Observable { // TODO: ?? implements Runnable {
return false; return false;
} }
public void setEnPause(boolean enPause) {
this.enPause = enPause;
}
public boolean estEnPause() {
return enPause;
}
} }

View File

@@ -78,7 +78,7 @@ public class Jeu extends Observable implements Runnable {
@Override @Override
public void run() { public void run() {
// TODO: game logic here // TODO: game logic here
if (!jeuEnCours) { if (!jeuEnCours || grille.estEnPause()) {
return; return;
} }