48 lines
1.6 KiB
Java
48 lines
1.6 KiB
Java
|
|
import java.awt.Color;
|
||
|
|
import java.awt.Graphics;
|
||
|
|
|
||
|
|
public class BonusMalus extends ObjetGraphique {
|
||
|
|
|
||
|
|
public boolean estBonus;
|
||
|
|
public boolean actif = true; // Permet de le faire disparaître une fois ramassé
|
||
|
|
public int taille = 15;
|
||
|
|
|
||
|
|
public BonusMalus(double startX, double startY, boolean bonus) {
|
||
|
|
this.x = startX;
|
||
|
|
this.y = startY;
|
||
|
|
this.estBonus = bonus;
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
void Afficher(Graphics g) {
|
||
|
|
if (!actif) return; // S'il a été ramassé, on ne le dessine plus
|
||
|
|
|
||
|
|
if (estBonus) {
|
||
|
|
g.setColor(Color.green); // Carré jaune (Bonus)
|
||
|
|
g.fillRect((int)x, (int)y - taille / 2, taille, taille);
|
||
|
|
} else {
|
||
|
|
g.setColor(Color.red); // Triangle rouge (Malus)
|
||
|
|
int[] xPoints = {(int)x, (int)x + taille / 2, (int)x + taille};
|
||
|
|
int[] yPoints = {(int)y + taille / 2, (int)y - taille / 2, (int)y + taille / 2};
|
||
|
|
g.fillPolygon(xPoints, yPoints, 3);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
void Animer() {
|
||
|
|
this.x -= 5; // Il se déplace vers la gauche à la même vitesse que la ligne
|
||
|
|
}
|
||
|
|
|
||
|
|
// Vérifie si le joueur touche l'objet
|
||
|
|
public boolean estTouche(Cercle c) {
|
||
|
|
if (!actif) return false;
|
||
|
|
|
||
|
|
// Calcul de la distance entre le centre de l'objet et le centre du joueur
|
||
|
|
double centreItemX = x + taille / 2.0;
|
||
|
|
double centreItemY = y;
|
||
|
|
double distance = Math.sqrt(Math.pow(centreItemX - c.x, 2) + Math.pow(centreItemY - c.y, 2));
|
||
|
|
|
||
|
|
// Si la distance est inférieure au rayon du joueur, c'est touché !
|
||
|
|
return distance < (c.getRayon() + taille / 2.0);
|
||
|
|
}
|
||
|
|
}
|