mode 2 joueurs

This commit is contained in:
MOISOIU Stefan-Mihai
2026-03-26 20:08:52 +01:00
parent e1e0ef5054
commit ba78c22e91
6 changed files with 316 additions and 210 deletions

View File

@@ -2,6 +2,7 @@ package linea;
import java.awt.Color;
import java.awt.Graphics;
import java.util.List;
public class Bonus extends ObjetGraphique {
@@ -10,14 +11,13 @@ public class Bonus extends ObjetGraphique {
protected int compteurFrames = 0;
protected boolean dejaCapture = false;
protected Ligne maLigne;
protected Cercle monCercle;
protected List<Joueur> joueurs;
protected Jeu monJeu;
public Bonus(Ligne l, Cercle c, Jeu j) {
public Bonus(Ligne l, List<Joueur> joueurs, Jeu j) {
this.maLigne = l;
this.monCercle = c;
this.joueurs = joueurs;
this.monJeu = j;
this.couleur = Color.GREEN;
}
@@ -25,11 +25,7 @@ public class Bonus extends ObjetGraphique {
@Override
void Afficher(Graphics g) {
if (actif) {
if (dejaCapture) {
g.setColor(Color.BLUE);
} else {
g.setColor(this.couleur);
}
g.setColor(dejaCapture ? Color.BLUE : this.couleur);
g.fillRect((int)Math.round(x), (int)Math.round(y), (int)taille, (int)taille);
}
}
@@ -40,12 +36,9 @@ public class Bonus extends ObjetGraphique {
compteurFrames++;
}
if (compteurFrames >= 220 && !actif) {
actif = true;
dejaCapture = false;
x = 800;
double hauteurLigne = 300;
@@ -69,26 +62,19 @@ public class Bonus extends ObjetGraphique {
double vitesseLigne = monJeu.gestionnaireNiveau.getVitesseScroll();
x -= vitesseLigne;
double centreX = x + (taille / 2.0);
if (centreX <= monCercle.x && centreX > monCercle.x - vitesseLigne) {
double hautCercle = monCercle.y - monCercle.getRayon();
double basCercle = monCercle.y + monCercle.getRayon();
if (y > hautCercle && (y + taille) < basCercle) {
if (!dejaCapture) {
monJeu.vies += 1;
if (!dejaCapture) {
for (Joueur joueur : joueurs) {
if (joueur.verifierCollisionCollectible(x, y, taille, vitesseLigne)) {
joueur.ajouterVie();
dejaCapture = true;
break;
}
}
}
// 2. Quand il sort de l'écran, on le désactive pour relancer le chrono !
if (x + taille < 0) {
actif = false;
}
}
}
}
}