-fix bug bouton back to menu when play after game launching where game over

This commit is contained in:
2026-02-10 16:12:27 +01:00
parent 2721516b0b
commit c52547120b
2 changed files with 17 additions and 6 deletions

View File

@@ -34,7 +34,6 @@ public class Jeu implements KeyListener, ActionListener {
// Initialisation initiale // Initialisation initiale
resetPartie(); resetPartie();
// --- C'EST ICI QUE LA MAGIE OPÈRE ---
// On ajoute l'action au bouton créé dans ZoneDessin // On ajoute l'action au bouton créé dans ZoneDessin
ecran.btnRetour.addActionListener(new ActionListener() { ecran.btnRetour.addActionListener(new ActionListener() {
@Override @Override
@@ -43,7 +42,7 @@ public class Jeu implements KeyListener, ActionListener {
layout.show(conteneurPrincipal, "MENU"); layout.show(conteneurPrincipal, "MENU");
} }
}); });
// -------------------------------------
ecran.addKeyListener(this); ecran.addKeyListener(this);
@@ -58,7 +57,7 @@ public class Jeu implements KeyListener, ActionListener {
} }
public void lancerPartie() { public void lancerPartie() {
resetPartie(); // Très important : remettre à zéro avant de jouer resetPartie();
layout.show(conteneurPrincipal, "JEU"); layout.show(conteneurPrincipal, "JEU");
ecran.setFocusable(true); ecran.setFocusable(true);
ecran.requestFocusInWindow(); ecran.requestFocusInWindow();
@@ -66,21 +65,33 @@ public class Jeu implements KeyListener, ActionListener {
} }
private void resetPartie() { private void resetPartie() {
if(horloge != null) horloge.stop();
if(horloge != null) {
horloge.stop();
}
horloge = new Timer(40, this); horloge = new Timer(40, this);
demiCercleAvant = new Cercle(90, -180); demiCercleAvant = new Cercle(90, -180);
demiCercleArriere = new Cercle(90, 180); demiCercleArriere = new Cercle(90, 180);
laligne = new Ligne();
demiCercleArriere.setCouleur(new Color(0.8f, 0.0f, 0.0f)); demiCercleArriere.setCouleur(new Color(0.8f, 0.0f, 0.0f));
demiCercleAvant.setCouleur(new Color(1.0f, 0.2f, 0.2f)); demiCercleAvant.setCouleur(new Color(1.0f, 0.2f, 0.2f));
ecran.viderObjets(); ecran.viderObjets();
ecran.ajouterObjet(demiCercleArriere); ecran.ajouterObjet(demiCercleArriere);
ecran.ajouterObjet(demiCercleAvant); ecran.ajouterObjet(demiCercleAvant);
ecran.ajouterObjet(laligne); ecran.ajouterObjet(laligne);
ecran.setGameOver(false); // Cela cachera le bouton retour ecran.setGameOver(false);
labScore.setText("<html><h3>score : 0</h3></html>");
} }
@Override @Override

View File

@@ -17,7 +17,7 @@ public class ZoneDessin extends JPanel {
public JButton btnRetour; public JButton btnRetour;
public ZoneDessin(){ public ZoneDessin(){
// 1. IMPORTANT : Layout null pour positionner le bouton pixel par pixel // Layout null pour positionner le bouton pixel par pixel
setLayout(null); setLayout(null);
setPreferredSize(new Dimension(800, 600)); setPreferredSize(new Dimension(800, 600));
setBackground(new Color(100,100,100)); setBackground(new Color(100,100,100));