Modifications bonus,

pas trop de bonus, couleur jaune a la récolte
This commit is contained in:
2026-03-16 16:31:57 +01:00
parent 4e5ab18694
commit 2017bd1907

View File

@@ -8,6 +8,8 @@ public class Bonus extends ObjetGraphique {
protected double taille = 10; protected double taille = 10;
protected boolean actif = false; protected boolean actif = false;
protected int compteurFrames = 0; protected int compteurFrames = 0;
protected boolean dejaCapture = false;
protected Ligne maLigne; protected Ligne maLigne;
protected Cercle monCercle; protected Cercle monCercle;
@@ -23,21 +25,26 @@ public class Bonus extends ObjetGraphique {
@Override @Override
void Afficher(Graphics g) { void Afficher(Graphics g) {
if (actif) { if (actif) {
g.setColor(this.couleur); if (dejaCapture) {
g.setColor(Color.ORANGE);
} else {
g.setColor(this.couleur);
}
g.fillRect((int)Math.round(x), (int)Math.round(y), (int)taille, (int)taille); g.fillRect((int)Math.round(x), (int)Math.round(y), (int)taille, (int)taille);
} }
} }
@Override @Override
void Animer() { void Animer() {
// On compte le temps uniquement si le bonus n'est pas déjà sur l'écran
if (!actif) { if (!actif) {
compteurFrames++; compteurFrames++;
} }
// TEMPS RÉDUIT POUR TESTER : 50 frames = 2 secondes (au lieu de 375) if (compteurFrames >= 300 && !actif) {
if (compteurFrames >= 100 && !actif) {
actif = true; actif = true;
dejaCapture = false;
x = 800; x = 800;
double hauteurLigne = 300; double hauteurLigne = 300;
@@ -45,11 +52,14 @@ public class Bonus extends ObjetGraphique {
hauteurLigne = maLigne.dernierSegment.y; hauteurLigne = maLigne.dernierSegment.y;
} }
double decalage = (Math.random() * 80) - 40; if (Math.random() > 0.5) {
y = hauteurLigne + decalage; y = hauteurLigne - 80 - (Math.random() * 50);
} else {
y = hauteurLigne + 30 + (Math.random() * 20);
}
// Ce message s'affichera dans ta console Eclipse/IntelliJ/VSCode if (y < 20) y = 20;
System.out.println("DEBUG : Le bonus apparait à Y = " + y); if (y > 550) y = 550;
compteurFrames = 0; compteurFrames = 0;
} }
@@ -57,21 +67,25 @@ public class Bonus extends ObjetGraphique {
if (actif) { if (actif) {
x -= 10; x -= 10;
// --- VÉRIFICATION DE LA COLLISION ---
double centreX = x + (taille / 2.0);
double centreY = y + (taille / 2.0);
double dx = centreX - monCercle.x;
double dy = centreY - monCercle.y;
double distance = Math.sqrt((dx * dx) + (dy * dy));
if (distance < monCercle.getRayon()) {
System.out.println("DEBUG : Bonus attrapé ! +1 Vie"); double centreX = x + (taille / 2.0);
monJeu.vies += 1;
actif = false; if (centreX <= monCercle.x && centreX > monCercle.x - 10) {
double hautCercle = monCercle.y - monCercle.getRayon();
double basCercle = monCercle.y + monCercle.getRayon();
if (y > hautCercle && (y + taille) < basCercle) {
if (!dejaCapture) {
monJeu.vies += 1;
dejaCapture = true;
}
}
} }
if (x + taille < 0) { if (x + taille < 0) {
System.out.println("DEBUG : Bonus raté, il est sorti de l'écran");
actif = false; actif = false;
} }
} }