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