change: bonus regroupé en une seule classe mere
classe objetcolldectile qui regroupe tout
This commit is contained in:
@@ -4,77 +4,32 @@ import java.awt.Color;
|
||||
import java.awt.Graphics;
|
||||
import java.util.List;
|
||||
|
||||
public class BonusTaille extends ObjetGraphique {
|
||||
|
||||
protected double taille = 12;
|
||||
protected boolean actif = false;
|
||||
protected int compteurFrames = 200;
|
||||
protected boolean dejaCapture = false;
|
||||
|
||||
protected Ligne maLigne;
|
||||
protected List<Joueur> joueurs;
|
||||
protected Jeu monJeu;
|
||||
public class BonusTaille extends ObjetCollectible {
|
||||
|
||||
public BonusTaille(Ligne l, List<Joueur> joueurs, Jeu j) {
|
||||
this.maLigne = l;
|
||||
this.joueurs = joueurs;
|
||||
this.monJeu = j;
|
||||
super(l, joueurs, j);
|
||||
this.taille = 12;
|
||||
this.couleur = Color.CYAN;
|
||||
this.compteurFrames = 200; // démarre déjà à 200 pour apparaître plus tôt
|
||||
}
|
||||
|
||||
@Override protected int getSeuilActivation() { return 320; }
|
||||
|
||||
@Override protected Color getCouleurCapture() { return new Color(255, 255, 255, 100); }
|
||||
|
||||
@Override
|
||||
protected double calculerY(double hauteurLigne) {
|
||||
if (Math.random() > 0.5) return hauteurLigne - 8 - (Math.random() * 45);
|
||||
else return hauteurLigne + 8 + (Math.random() * 45);
|
||||
}
|
||||
|
||||
@Override
|
||||
void Afficher(Graphics g) {
|
||||
if (actif) {
|
||||
g.setColor(dejaCapture ? new Color(255, 255, 255, 100) : this.couleur);
|
||||
g.fillOval((int)Math.round(x), (int)Math.round(y), (int)taille, (int)taille);
|
||||
}
|
||||
protected void appliquerEffet(Joueur joueur) {
|
||||
joueur.activerBonusTaille();
|
||||
}
|
||||
|
||||
@Override
|
||||
void Animer() {
|
||||
if (!actif) {
|
||||
compteurFrames++;
|
||||
}
|
||||
|
||||
if (compteurFrames >= 320 && !actif) {
|
||||
actif = true;
|
||||
dejaCapture = false;
|
||||
x = 800;
|
||||
|
||||
double hauteurLigne = 300;
|
||||
if (maLigne.dernierSegment != null) {
|
||||
hauteurLigne = maLigne.dernierSegment.y;
|
||||
}
|
||||
|
||||
if (Math.random() > 0.5) {
|
||||
y = hauteurLigne - 8 - (Math.random() * 45);
|
||||
} else {
|
||||
y = hauteurLigne + 8 + (Math.random() * 45);
|
||||
}
|
||||
|
||||
if (y < 20) y = 20;
|
||||
if (y > 550) y = 550;
|
||||
|
||||
compteurFrames = 0;
|
||||
}
|
||||
|
||||
if (actif) {
|
||||
double vitesseLigne = monJeu.gestionnaireNiveau.getVitesseScroll();
|
||||
x -= vitesseLigne;
|
||||
|
||||
if (!dejaCapture) {
|
||||
for (Joueur joueur : joueurs) {
|
||||
if (joueur.verifierCollisionCollectible(x, y, taille, vitesseLigne)) {
|
||||
joueur.activerBonusTaille();
|
||||
dejaCapture = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (x + taille < 0) {
|
||||
actif = false;
|
||||
}
|
||||
}
|
||||
protected void dessiner(Graphics g) {
|
||||
g.fillOval((int)Math.round(x), (int)Math.round(y), (int)taille, (int)taille);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user