4 Commits

Author SHA1 Message Date
74746c1ad7 init 13: add bdd niveaux 2026-02-17 14:30:08 +01:00
e3b3fc5f62 le jeux s arrête+ game over 2026-02-17 12:44:43 +01:00
f0db5f43ad AJOUT SCORE 2026-02-10 16:33:33 +01:00
74d9d60db8 MVP OK 2026-02-10 15:58:09 +01:00
7 changed files with 44 additions and 17 deletions

0
.linea.vpp.lck Normal file
View File

View File

@@ -64,7 +64,8 @@ public class Cercle extends ObjetGraphique{ // il s'agit plutôt d'arcs de cercl
}
//-------------------------------------------------------------------------
// Méthode qui retourne la position du cercle en y (utile pour la classe qui vérifiera si la ligne passe dans le cercle)
// Méthode qui retourne la position du cercle en y
// (utile pour la classe qui vérifiera si la ligne passe dans le cercle)
//-------------------------------------------------------------------------
@Override
public double getY(){

Binary file not shown.

View File

@@ -36,6 +36,7 @@ public class Jeu implements KeyListener, ActionListener{
// un label qui servira à afficher le score
protected JLabel labScore;
protected boolean jeuCommence = false;
//-------------------------------------------------------------------------
// METHODES
@@ -46,12 +47,12 @@ public class Jeu implements KeyListener, ActionListener{
//-------------------------------------------------------------------------
public Jeu(){
// Gestion du score : a réactiver en fin de TP, inutile au début
/*
labScore = new JLabel();
labScore.setText("<html><h3>score : 0</h3></html>");
labScore.setBounds(20, 0, 200, 50);
ecran.add(labScore);
*/
}
@@ -148,14 +149,26 @@ public class Jeu implements KeyListener, ActionListener{
public void actionPerformed(ActionEvent e) {
this.ecran.traiterBoucleAnimation();
boolean verification = this.laLigne.estDansCercle(this.demiCercleAvant);
/*if(verification == false){
//horloge.stop();
System.out.println("Perdu ! Votre score est de : " + this.score);
// 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;
//-------------------------------------------------------------------------------------------------------------------
// A FAIRE: Le jeu peut s'arrêter si la ligne n'est pas dans le cercle
// 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
}
}
else{
this.score += 1;
System.out.println("Score : " + this.score);
}*/
labScore.setText("<html><h3>score : " + this.score + "</h3></html>");
}
}

View File

@@ -128,6 +128,7 @@ public class Ligne extends ObjetGraphique{// Hérite de la classe ObjetGraphique
// fallback : prendre le premier segment si aucune correspondance
if (this.SegCourant == null && !this.listeSegments.isEmpty()) {
this.SegCourant = this.listeSegments.get(0);
this.SegCourant.setCouleur(Color.BLACK);
}
}
@@ -144,11 +145,17 @@ 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);
dansCercle = false;
break;
// A FAIRE: On doit arrêter le jeu si la ligne n'est pas dans le cercle
// PROBLEME: Le jeu s'arrête dès le lancement car au départ la ligne n'est
// pas dans le cercle (la ligne est à droite du cercle, et elle se déplace vers la gauche)
// SOLUTION: Le jeu commence quand la ligne est dans le cercle,
// et il s'arrête quand la ligne n'est plus dans le cercle
//break;
}
}
return dansCercle;

View File

@@ -1,5 +1,6 @@
package linea;
public class LineaAppli {
//-------------------------------------------------------------------------
// Classe de base de l'application, rien à modifier ici

View File

@@ -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);
}
}
}