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 java.awt.event.KeyListener;
|
||||||
import javax.swing.JFrame;
|
import javax.swing.JFrame;
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JOptionPane;
|
|
||||||
import javax.swing.Timer;
|
import javax.swing.Timer;
|
||||||
|
|
||||||
public class Jeu implements KeyListener, ActionListener{
|
public class Jeu implements KeyListener, ActionListener{
|
||||||
@@ -148,12 +147,41 @@ public class Jeu implements KeyListener, ActionListener{
|
|||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
ecran.traiterBoucleAnimation();
|
ecran.traiterBoucleAnimation();
|
||||||
if (ecran.aCollision()) {
|
if (ecran.aCollision()) {
|
||||||
horloge.stop();
|
resetLevel();
|
||||||
JOptionPane.showMessageDialog(null, "Game Over");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
score+=(0.05+(0.05*horloge.getDelay()/100.0));
|
score+=(0.05+(0.05*horloge.getDelay()/100.0));
|
||||||
labScore.setText("<html><h3>score : "+(int)score+"</h3></html>");
|
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() {
|
public boolean aCollision() {
|
||||||
return collisionOccur;
|
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