update:Boule

This commit is contained in:
2026-03-28 14:31:55 +01:00
parent 1e7f70ab6b
commit b9dad77420
16 changed files with 41 additions and 20 deletions

View File

@@ -6,6 +6,16 @@ import java.awt.Graphics2D;
import java.awt.geom.Arc2D;
public class Cercle extends ObjetGraphique{ // il s'agit plutôt d'arcs de cercle
private static final BasicStroke ARC_STROKE = new BasicStroke(5.0f);
private static final double GRAVITE = 0.95;
private static final double POUSSEE = 1.45;
private static final double AMORTISSEMENT = 0.92;
private static final double VITESSE_MIN = -6.5;
private static final double VITESSE_MAX = 6.5;
private static final double BORD_HAUT = 0;
private static final double BORD_BAS = 600;
private final Arc2D.Double arc = new Arc2D.Double();
// Hérite de la classe ObjetGraphique
// Ne pas oublier qu'il y a des propriétés et méthodes reçues par l'héritage
@@ -94,11 +104,12 @@ public class Cercle extends ObjetGraphique{ // il s'agit plutôt d'arcs de cercl
void Afficher(Graphics g) {
// choix de la couleur et de l'épaisseur
Graphics2D g2D = (Graphics2D) g;
g2D.setStroke(new BasicStroke(5.0f));
g2D.setStroke(ARC_STROKE);
g.setColor(this.couleur);
// dessin de l'arc
g2D.draw(new Arc2D.Double(x-rayon/2, y-rayon, rayon, rayon*2, debut, fin, Arc2D.OPEN));
arc.setArc(x - rayon / 2.0, y - rayon, rayon, rayon * 2.0, debut, fin, Arc2D.OPEN);
g2D.draw(arc);
}
// Accesseur pour savoir si le joueur maintient la montée
@@ -112,35 +123,31 @@ public class Cercle extends ObjetGraphique{ // il s'agit plutôt d'arcs de cercl
//-------------------------------------------------------------------------
@Override
void Animer() {
double gravite = 0.95;
double poussee = 1.45;
double amortissement = 0.92;
if (montee==true) {
vitesse -= poussee;
if (montee) {
vitesse -= POUSSEE;
} else {
vitesse += gravite;
vitesse += GRAVITE;
}
// Lissage global pour un ressenti plus régulier.
vitesse *= amortissement;
vitesse *= AMORTISSEMENT;
if (vitesse < -6.5) {
vitesse = -6.5;
if (vitesse < VITESSE_MIN) {
vitesse = VITESSE_MIN;
}
if (vitesse > 6.5) {
vitesse = 6.5;
if (vitesse > VITESSE_MAX) {
vitesse = VITESSE_MAX;
}
depY = vitesse;
y += depY;
//position
if(y<= 0 + rayon){
y = 0 + rayon;
if (y <= BORD_HAUT + rayon) {
y = BORD_HAUT + rayon;
vitesse = 0;
}else if(y>=600 - rayon){
y = 600 - rayon;
} else if (y >= BORD_BAS - rayon) {
y = BORD_BAS - rayon;
vitesse = 0;
}