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); } }