Intégration de projet_linea dans le dépôt principal

This commit is contained in:
2026-03-13 11:07:07 +01:00
commit f4091183d8
43 changed files with 1193 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
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);
}
}