Clignotement lors de la perte de vie
Clignotement blanc : Début de partie et changement de niveau Clignotement rouge : Collision avec la ligne et obtention de malus
This commit is contained in:
BIN
linea_bdd.db
BIN
linea_bdd.db
Binary file not shown.
44
src/Jeu.java
44
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
|
||||
|
||||
@@ -79,6 +79,8 @@ public class Malus extends ObjetGraphique {
|
||||
if (!dejaCapture) {
|
||||
monJeu.vies -= 1;
|
||||
dejaCapture = true;
|
||||
monJeu.invincibiliteRouge = true;
|
||||
monJeu.compteurInvincible = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user