diff --git a/linea/linea/Jeu.java b/linea/linea/Jeu.java index 6e2afd0..1728361 100644 --- a/linea/linea/Jeu.java +++ b/linea/linea/Jeu.java @@ -34,8 +34,9 @@ public class Jeu implements KeyListener, ActionListener{ protected double score=0; // un label qui servira à afficher le score - protected JLabel labScore; - + protected JLabel labScore; + + protected boolean jeuCommence = false; //------------------------------------------------------------------------- // METHODES @@ -151,6 +152,7 @@ public class Jeu implements KeyListener, ActionListener{ // A FAIRE : si la ligne est dans le cercle, on augmente le score, sinon on le remet à 0 if(verification){ this.score += 10; + this.jeuCommence = true; // Le jeu commence dès que la ligne est dans le cercle }else{ this.score = this.score; @@ -159,9 +161,14 @@ public class Jeu implements KeyListener, ActionListener{ // NB: Le jeu commence quand la ligne est dans le cercle // Au début le ligne n'est pas dans le cercle car la ligne est à droite du cercle, et elle se déplace vers la gauche //------------------------------------------------------------------------------------------------------------------- - + if (this.jeuCommence) { + this.horloge.stop(); // 1. Arrêter le temps + this.ecran.partiePerdue = true; // 2. Signaler à l'écran + this.ecran.repaint(); // 3. Forcer l'affichage du texte + } } labScore.setText("

score : " + this.score + "

"); + } } diff --git a/linea/linea/Ligne.java b/linea/linea/Ligne.java index 0d5102e..bb3ffc1 100644 --- a/linea/linea/Ligne.java +++ b/linea/linea/Ligne.java @@ -12,7 +12,7 @@ public class Ligne extends ObjetGraphique{// Hérite de la classe ObjetGraphique //------------------------------------------------------------------------- // PROPRIETES //------------------------------------------------------------------------- - + // nb de Segments qui composent la ligne protected int nbSegments = 400; @@ -145,6 +145,7 @@ public class Ligne extends ObjetGraphique{// Hérite de la classe ObjetGraphique // Le point i du segment courant est dans le cercle, on peut continuer à vérifier les autres points du segment this.SegCourant.setCouleur(Color.GREEN); dansCercle = true; + break; }else{ // On peut s'arrêter dès qu'on trouve un point hors du cercle, car le segment courant n'est plus dans le cercle this.SegCourant.setCouleur(Color.RED); diff --git a/linea/linea/LineaAppli.java b/linea/linea/LineaAppli.java index f97d88b..6ad9e01 100644 --- a/linea/linea/LineaAppli.java +++ b/linea/linea/LineaAppli.java @@ -1,6 +1,7 @@ package linea; -public class LineaAppli { + +public class LineaAppli { //------------------------------------------------------------------------- // Classe de base de l'application, rien à modifier ici //------------------------------------------------------------------------- diff --git a/linea/linea/ZoneDessin.java b/linea/linea/ZoneDessin.java index ebd186e..9543868 100644 --- a/linea/linea/ZoneDessin.java +++ b/linea/linea/ZoneDessin.java @@ -16,7 +16,7 @@ public class ZoneDessin extends JPanel { // hérite d'une classe du frameWork st //------------------------------------------------------------------------- // PROPRIETES //------------------------------------------------------------------------- - + public boolean partiePerdue = false; // un booleen qui permet d'arreter l'animation (suspendre) protected boolean estArrete = false; @@ -104,6 +104,11 @@ public class ZoneDessin extends JPanel { // hérite d'une classe du frameWork st for(ObjetGraphique obj: listeObjets){ obj.Afficher(g); //Chaque objet se dessine lui-même } + if (this.partiePerdue) { + g.setColor(Color.RED); + g.setFont(new java.awt.Font("Arial", java.awt.Font.BOLD, 50)); + g.drawString("GAME OVER", 250, 300); + } } }