From eb74186d0536f60b3e523bec30247f040d477fac Mon Sep 17 00:00:00 2001 From: Marc Date: Tue, 17 Mar 2026 16:25:30 +0100 Subject: [PATCH] Clignotement lors de la perte de vie MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Clignotement blanc : Début de partie et changement de niveau Clignotement rouge : Collision avec la ligne et obtention de malus --- linea_bdd.db | Bin 16384 -> 16384 bytes src/Jeu.java | 44 ++++++++++++++++++++++++++++++++++++++++---- src/Malus.java | 2 ++ 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/linea_bdd.db b/linea_bdd.db index 7c8cd2ccadb2ec6888424404052bc85271e271a2..c89ff8b6dda19cc09817b3f59faf61e50b6d9013 100644 GIT binary patch delta 74 zcmZo@U~Fh$oFL68JyFJ)QF>#-5`H0e{(c7jPyA2#ukx?uKg_?Fzkjo$KqbG35IYNl eI%7#@Nq%W!UTRWKeoCU;=Ed?c0*vg73)eo%?!w;jg5g?Bbv!fqe J5CI0FFc6qL55xcf diff --git a/src/Jeu.java b/src/Jeu.java index 85aefe0..d85a911 100644 --- a/src/Jeu.java +++ b/src/Jeu.java @@ -39,6 +39,9 @@ public class Jeu implements KeyListener, ActionListener, MouseListener { protected boolean estGameOver = false; protected JLabel labGameOver; protected int compteurInvincible = 0; + public int typeInvincibilite = 0; + public boolean invincibiliteRouge = false; + protected String pseudo = ""; protected JFrame fenetre; @@ -121,7 +124,7 @@ public class Jeu implements KeyListener, ActionListener, MouseListener { ecran.ajouterObjet(demiCercleArriere); ecran.ajouterObjet(lili); ecran.ajouterObjet(demiCercleAvant); - demiCercleArriere.setCouleur(new Color(0.0f, 0.4f, 0.0f)); + demiCercleArriere.setCouleur(new Color(0.8f, 0.0f, 0.0f)); demiCercleAvant.setCouleur(new Color(0.0f, 0.5f, 0.0f)); ecran.addKeyListener(this); @@ -138,6 +141,7 @@ public class Jeu implements KeyListener, ActionListener, MouseListener { enCollision = false; estGameOver = false; compteurInvincible = 0; + invincibiliteRouge = false; gestionnaireNiveau.reinitialiser(); gestionnaireFinDePartie.reinitialiser(); ecran.demarrer(); @@ -147,9 +151,7 @@ public class Jeu implements KeyListener, ActionListener, MouseListener { } horloge.start(); - // A FAIRE : donner la couleur des 2 demi-cercles - // demiCercleArriere.setCouleur(new Color(0.8f, 0.0f, 0.0f)); - demiCercleArriere.setCouleur(new Color(0.8f, 0.0f, 0.0f)); + } @Override @@ -161,6 +163,7 @@ public class Jeu implements KeyListener, ActionListener, MouseListener { gestionnaireNiveau.mettreAJour(); if (gestionnaireNiveau.aChangéDeNiveau()) { compteurInvincible = 0; + invincibiliteRouge = false; } ecran.setCouleurFond(gestionnaireNiveau.getCouleurFondInterpolee()); @@ -178,7 +181,40 @@ public class Jeu implements KeyListener, ActionListener, MouseListener { if (compteurInvincible < 75) { compteurInvincible = compteurInvincible + 1; + + // clignotement + if (compteurInvincible % 10 < 5) { + if (invincibiliteRouge) { + // degats = rouge + demiCercleArriere.setCouleur(new Color(1f, 0f, 0f)); + demiCercleAvant.setCouleur(new Color(1f, 0f, 0f)); + } else { + // niveau/debut = blanc + demiCercleArriere.setCouleur(new Color(255, 255, 255, 150)); + demiCercleAvant.setCouleur(new Color(255, 255, 255, 150)); + } + } else { + // Couleurs normales entre deux clignotements + demiCercleArriere.setCouleur(new Color(0.8f, 0.0f, 0.0f)); + demiCercleAvant.setCouleur(new Color(0.0f, 0.5f, 0.0f)); + } + } else { + //couleur normale a la fin + demiCercleArriere.setCouleur(new Color(0.8f, 0.0f, 0.0f)); + demiCercleAvant.setCouleur(new Color(0.0f, 0.5f, 0.0f)); + + if (demiCercleArriere.VerifierCollision(lili)) { + if (enCollision == false) { + vies = vies - 1; + enCollision = true; + compteurInvincible = 0; + invincibiliteRouge = true; // On a touché la ligne : on déclenche le ROUGE ! + } + } else { + enCollision = false; + } + if (demiCercleArriere.VerifierCollision(lili)) { if (enCollision == false) { vies = vies - 1; // La nouvelle logique : on perd 1 vie diff --git a/src/Malus.java b/src/Malus.java index 463591e..d860746 100644 --- a/src/Malus.java +++ b/src/Malus.java @@ -79,6 +79,8 @@ public class Malus extends ObjetGraphique { if (!dejaCapture) { monJeu.vies -= 1; dejaCapture = true; + monJeu.invincibiliteRouge = true; + monJeu.compteurInvincible = 0; } } }