Reset du jeu apres la mort
This commit is contained in:
@@ -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("<html><h3>score : "+(int)score+"</h3></html>");
|
||||
}
|
||||
|
||||
// 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("<html><h3>score : 0</h3></html>");
|
||||
|
||||
// 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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user