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);
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
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);

View File

@@ -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");

View File

@@ -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;
}
}

View File

@@ -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;
}