reglages beug de colision des bonus et malus

This commit is contained in:
2026-03-25 10:55:27 +01:00
parent a179611f29
commit 27581b2842

View File

@@ -60,9 +60,6 @@ public class Jeu implements KeyListener, ActionListener {
menuLeaderboard = new MenuLeaderboard(this); menuLeaderboard = new MenuLeaderboard(this);
menuHistorique = new MenuHistorique(this); menuHistorique = new MenuHistorique(this);
// Initialisation initiale
resetPartie(6, 20);
ecran.btnRetour.addActionListener(new ActionListener() { ecran.btnRetour.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@@ -217,11 +214,22 @@ public class Jeu implements KeyListener, ActionListener {
for (int i = ecran.listeObjets.size() - 1; i >= 0; i--) { for (int i = ecran.listeObjets.size() - 1; i >= 0; i--) {
ObjetGraphique obj = ecran.listeObjets.get(i); ObjetGraphique obj = ecran.listeObjets.get(i);
if (obj instanceof Bonus || obj instanceof Malus) { if (obj instanceof Bonus || obj instanceof Malus) {
double dx = obj.getX() - demiCercleAvant.getX(); double itemLargeur = 20.0;
double dy = obj.getY() - demiCercleAvant.getY(); double itemHauteur = 20.0;
double dist = Math.sqrt(dx * dx + dy * dy);
if (dist < demiCercleAvant.getRayon()) { double cercleX = demiCercleAvant.getX();
double cercleY = demiCercleAvant.getY();
double cercleRayon = demiCercleAvant.getRayon();
double pointPlusProcheX = Math.max(obj.getX(), Math.min(cercleX, obj.getX() + itemLargeur));
double pointPlusProcheY = Math.max(obj.getY(), Math.min(cercleY, obj.getY() + itemHauteur));
double distanceX = cercleX - pointPlusProcheX;
double distanceY = cercleY - pointPlusProcheY;
double distanceAuCarre = (distanceX * distanceX) + (distanceY * distanceY);
if (distanceAuCarre < (cercleRayon * cercleRayon)) {
if (obj instanceof Bonus) { if (obj instanceof Bonus) {
double newRayon = demiCercleAvant.getRayon() + 3; double newRayon = demiCercleAvant.getRayon() + 3;
demiCercleAvant.setRayon(newRayon); demiCercleAvant.setRayon(newRayon);