diff --git a/app/src/main/java/org/App.java b/app/src/main/java/org/App.java index ad11cb0..f848731 100644 --- a/app/src/main/java/org/App.java +++ b/app/src/main/java/org/App.java @@ -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 } } \ No newline at end of file diff --git a/app/src/main/java/org/Controllers/IO.java b/app/src/main/java/org/Controllers/IO.java index 8d12872..2f2bc45 100644 --- a/app/src/main/java/org/Controllers/IO.java +++ b/app/src/main/java/org/Controllers/IO.java @@ -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); diff --git a/app/src/main/java/org/Controllers/TetrisBandeauControleur.java b/app/src/main/java/org/Controllers/TetrisBandeauControleur.java index a5e6c64..7b64f07 100644 --- a/app/src/main/java/org/Controllers/TetrisBandeauControleur.java +++ b/app/src/main/java/org/Controllers/TetrisBandeauControleur.java @@ -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"); diff --git a/app/src/main/java/org/Models/Grille.java b/app/src/main/java/org/Models/Grille.java index facb5f9..929a52e 100644 --- a/app/src/main/java/org/Models/Grille.java +++ b/app/src/main/java/org/Models/Grille.java @@ -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; + } + + } \ No newline at end of file diff --git a/app/src/main/java/org/Models/Jeu.java b/app/src/main/java/org/Models/Jeu.java index e959bb2..e38ffe1 100644 --- a/app/src/main/java/org/Models/Jeu.java +++ b/app/src/main/java/org/Models/Jeu.java @@ -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; }