From 83f5b974ab5ebc664569eff043933e2bf30382cb Mon Sep 17 00:00:00 2001 From: Richard3il Date: Mon, 23 Feb 2026 09:57:06 +0100 Subject: [PATCH] Reset du jeu apres la mort --- linea/Jeu.java | 34 +++++++++++++++++++++++++++++++--- linea/ZoneDessin.java | 9 +++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/linea/Jeu.java b/linea/Jeu.java index 6a53e7c..6fbc6da 100644 --- a/linea/Jeu.java +++ b/linea/Jeu.java @@ -7,7 +7,6 @@ import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JLabel; -import javax.swing.JOptionPane; import javax.swing.Timer; public class Jeu implements KeyListener, ActionListener{ @@ -148,12 +147,41 @@ public class Jeu implements KeyListener, ActionListener{ public void actionPerformed(ActionEvent e) { ecran.traiterBoucleAnimation(); if (ecran.aCollision()) { - horloge.stop(); - JOptionPane.showMessageDialog(null, "Game Over"); + resetLevel(); return; } score+=(0.05+(0.05*horloge.getDelay()/100.0)); labScore.setText("

score : "+(int)score+"

"); } + + // Réinitialise le niveau : recrée les objets, remet le score et redémarre + private void resetLevel() { + if (horloge != null) horloge.stop(); + score = 0; + labScore.setText("

score : 0

"); + + // Réinitialiser l'écran (vide la liste des objets et les flags) + ecran.reinitialiser(); + + // recréer les objets + demiCercleAvant = new Cercle(90, -180); + demiCercleArriere = new Cercle(90, 180); + ligne = new Ligne(); + + // ré-ajouter les objets + ecran.ajouterObjet(demiCercleArriere); + ecran.ajouterObjet(ligne); + ecran.ajouterObjet(demiCercleAvant); + + demiCercleArriere.setCouleur(new Color(0.8f,0.0f,0.0f)); + demiCercleAvant.setCouleur(new Color(0.0f,0.8f,0.0f)); + + // redémarrer l'horloge + horloge = new Timer(40, this); + horloge.start(); + + // redonner le focus clavier + ecran.requestFocusInWindow(); + } } diff --git a/linea/ZoneDessin.java b/linea/ZoneDessin.java index 2bd241a..37da296 100644 --- a/linea/ZoneDessin.java +++ b/linea/ZoneDessin.java @@ -99,4 +99,13 @@ public class ZoneDessin extends JPanel { public boolean aCollision() { return collisionOccur; } + + // Réinitialise l'état de la zone de dessin et supprime les objets graphiques + public void reinitialiser() { + listeObjets.clear(); + estArrete = false; + collisionOccur = false; + hadBeenOnLine = false; + repaint(); + } } \ No newline at end of file