diff --git a/linea_bdd.db b/linea_bdd.db index 7c8cd2c..c89ff8b 100644 Binary files a/linea_bdd.db and b/linea_bdd.db differ 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; } } }