gros netoyage + éclaircissement de la ligne

This commit is contained in:
2026-03-25 10:59:38 +01:00
parent 27581b2842
commit d792ad1a33
9 changed files with 9 additions and 33 deletions

View File

@@ -18,21 +18,16 @@ public class CampagneAutoroute {
jeu.horloge = new Timer(40, jeu); jeu.horloge = new Timer(40, jeu);
jeu.ecran.viderObjets(); jeu.ecran.viderObjets();
// --- 1. CONFIGURATION DE LA DIFFICULTÉ --- // On récupère les paramètres depuis la BDD
// On récupère les paramètres depuis la BDD au lieu de les coder en dur
double[] params = jeu.bdd.getParametresDifficulte(difficulte); double[] params = jeu.bdd.getParametresDifficulte(difficulte);
double vitesse = params[0]; double vitesse = params[0];
double pente = params[1]; double pente = params[1];
int segments = (int) params[2]; int segments = (int) params[2];
// --- 2. CRÉATION DES OBJETS
// On passe la vitesse au fond pour qu'il défile au même rythme !
FondAutoroute fond = new FondAutoroute(vitesse); FondAutoroute fond = new FondAutoroute(vitesse);
jeu.ecran.ajouterObjet(fond); jeu.ecran.ajouterObjet(fond);
// On passe aussi la vitesse, la pente et les segments à la ligne
jeu.laligne = new Ligne(vitesse, pente, segments); jeu.laligne = new Ligne(vitesse, pente, segments);
jeu.ecran.ajouterObjet(jeu.laligne); jeu.ecran.ajouterObjet(jeu.laligne);

View File

@@ -25,23 +25,20 @@ public class CampagneEspace {
double pente = params[1]; double pente = params[1];
int segments = (int) params[2]; int segments = (int) params[2];
// 1. Fond étoilé
FondEspace fond = new FondEspace(); FondEspace fond = new FondEspace();
jeu.ecran.ajouterObjet(fond); jeu.ecran.ajouterObjet(fond);
// 2. Ligne de trajectoire
jeu.laligne = new Ligne(vitesse, pente, segments); jeu.laligne = new Ligne(vitesse, pente, segments);
jeu.ecran.ajouterObjet(jeu.laligne); jeu.ecran.ajouterObjet(jeu.laligne);
// 3. Cercle Espace avec physique Lunaire (niveau 1)
CercleEspace halo = new CercleEspace(0, 360, 1); CercleEspace halo = new CercleEspace(0, 360, 1);
jeu.ecran.ajouterObjet(halo); jeu.ecran.ajouterObjet(halo);
// Liaisons contrôles
jeu.demiCercleAvant = halo; jeu.demiCercleAvant = halo;
jeu.demiCercleArriere = halo; jeu.demiCercleArriere = halo;
// UI et lancement
jeu.ecran.setGameOver(false); jeu.ecran.setGameOver(false);
jeu.ecran.setVictoire(false); jeu.ecran.setVictoire(false);
jeu.score = 0; jeu.score = 0;

View File

@@ -6,10 +6,8 @@ import java.awt.Graphics;
public class FondAutoroute extends ObjetGraphique { public class FondAutoroute extends ObjetGraphique {
private double decalage = 0; private double decalage = 0;
// On ajoute une variable pour mémoriser la vitesse
private double vitesseDefilement; private double vitesseDefilement;
// On modifie le constructeur pour accepter la vitesse
public FondAutoroute(double vitesse) { public FondAutoroute(double vitesse) {
super(); super();
this.vitesseDefilement = vitesse; this.vitesseDefilement = vitesse;
@@ -17,12 +15,10 @@ public class FondAutoroute extends ObjetGraphique {
@Override @Override
void Afficher(Graphics g) { void Afficher(Graphics g) {
// ... (Garde exactement ton code d'affichage actuel avec les couleurs et les boucles for) ...
// Ciel de nuit urbaine
g.setColor(new Color(20, 20, 45)); g.setColor(new Color(20, 20, 45));
g.fillRect(0, 0, 800, 50); g.fillRect(0, 0, 800, 50);
// Asphalte de l'autoroute en bas // Asphalte de l'autoroute
g.setColor(new Color(30, 30, 30)); g.setColor(new Color(30, 30, 30));
g.fillRect(0, 50, 800, 500); g.fillRect(0, 50, 800, 500);
@@ -39,7 +35,6 @@ public class FondAutoroute extends ObjetGraphique {
@Override @Override
void Animer() { void Animer() {
// On utilise la vitesse dynamique au lieu du 5.0 fixe
decalage += vitesseDefilement; decalage += vitesseDefilement;
if (decalage >= 120) { if (decalage >= 120) {

View File

@@ -73,7 +73,7 @@ public class Ligne extends ObjetGraphique{// Hérite de la classe ObjetGraphique
} }
s = new Segment(x, y, dx, dy); s = new Segment(x, y, dx, dy);
s.setCouleur(new Color(0.2f, 0.2f, 0.2f)); s.setCouleur(new Color(0.5f, 0.5f, 0.5f));
x += dx; x += dx;
y += dy; y += dy;

View File

@@ -47,7 +47,7 @@ public class MenuHistorique extends JPanel {
public void rafraichirHistorique() { public void rafraichirHistorique() {
Object[][] data = jeu.bdd.getHistoriqueParties(); Object[][] data = jeu.bdd.getHistoriqueParties();
String[] columnNames = {"Identifiant", "Date", "Score", "Campagne", "Difficulté", "Durée (s)"}; String[] columnNames = {"Identifiant", "Date", "Score", "Campagne", "Difficulté", "Durée (s)"};
// Utilisation d'un DefaultTableModel pour rendre les cellules non éditables // DefaultTableModel = rendre les cellules non éditables
tableHistorique.setModel(new DefaultTableModel(data, columnNames) { tableHistorique.setModel(new DefaultTableModel(data, columnNames) {
@Override @Override
public boolean isCellEditable(int row, int column) { public boolean isCellEditable(int row, int column) {

View File

@@ -47,7 +47,7 @@ public class MenuLeaderboard extends JPanel {
public void rafraichirLeaderboard() { public void rafraichirLeaderboard() {
Object[][] data = jeu.bdd.getLeaderboardData(); Object[][] data = jeu.bdd.getLeaderboardData();
String[] columnNames = {"Identifiant", "Score", "Date", "Campagne", "Difficulté"}; String[] columnNames = {"Identifiant", "Score", "Date", "Campagne", "Difficulté"};
// Utilisation d'un DefaultTableModel pour rendre les cellules non éditables // DefaultTableModel = rendre les cellules non éditables
leaderboardTable.setModel(new DefaultTableModel(data, columnNames) { leaderboardTable.setModel(new DefaultTableModel(data, columnNames) {
@Override @Override
public boolean isCellEditable(int row, int column) { public boolean isCellEditable(int row, int column) {

View File

@@ -71,7 +71,6 @@ public class MenuLogin extends JPanel {
JOptionPane.showMessageDialog(this, "Cet identifiant est déjà pris ou une erreur est survenue.", "Erreur", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(this, "Cet identifiant est déjà pris ou une erreur est survenue.", "Erreur", JOptionPane.ERROR_MESSAGE);
} }
}); });
// Action pour quitter
btnQuit.addActionListener(e -> { btnQuit.addActionListener(e -> {
jeu.bdd.fermerConnexion(); jeu.bdd.fermerConnexion();
System.exit(0); System.exit(0);

View File

@@ -4,7 +4,6 @@ import java.awt.*;
import javax.swing.*; import javax.swing.*;
public class MenuPrincipal extends JPanel { public class MenuPrincipal extends JPanel {
private JButton btnPlay;
private JButton btnCampaign; private JButton btnCampaign;
private JButton btnLeaderboard; private JButton btnLeaderboard;
private JButton btnHistorique; private JButton btnHistorique;
@@ -21,16 +20,12 @@ public class MenuPrincipal extends JPanel {
titre.setAlignmentX(Component.CENTER_ALIGNMENT); titre.setAlignmentX(Component.CENTER_ALIGNMENT);
// Création des Boutons // Création des Boutons
btnPlay = creerBouton("PLAY");
btnCampaign = creerBouton("CAMPAGNES"); btnCampaign = creerBouton("CAMPAGNES");
btnLeaderboard = creerBouton("LEADERBOARD"); btnLeaderboard = creerBouton("LEADERBOARD");
btnHistorique = creerBouton("HISTORIQUE"); btnHistorique = creerBouton("HISTORIQUE");
btnQuit = creerBouton("QUIT"); btnQuit = creerBouton("QUIT");
// Actions // Actions
btnPlay.addActionListener(e -> jeu.lancerPartie());
btnCampaign.addActionListener(e -> jeu.afficherMenuCampagne()); btnCampaign.addActionListener(e -> jeu.afficherMenuCampagne());
btnLeaderboard.addActionListener(e -> jeu.afficherLeaderboard()); btnLeaderboard.addActionListener(e -> jeu.afficherLeaderboard());
@@ -42,8 +37,6 @@ public class MenuPrincipal extends JPanel {
// Mise en page (espacement vertical) // Mise en page (espacement vertical)
add(Box.createVerticalGlue()); add(Box.createVerticalGlue());
add(titre); add(titre);
add(Box.createRigidArea(new Dimension(0, 50)));
add(btnPlay);
add(Box.createRigidArea(new Dimension(0, 15))); add(Box.createRigidArea(new Dimension(0, 15)));
add(btnCampaign); add(btnCampaign);
add(Box.createRigidArea(new Dimension(0, 15))); add(Box.createRigidArea(new Dimension(0, 15)));

View File

@@ -22,12 +22,10 @@ public class Voiture extends Cercle {
Graphics2D g2D = (Graphics2D) g; Graphics2D g2D = (Graphics2D) g;
g2D.setStroke(new BasicStroke(5.0f)); g2D.setStroke(new BasicStroke(5.0f));
// DESSINER LE DEMI-CERCLE ARRIERE (Au fond)
g2D.setColor(couleurArriere); g2D.setColor(couleurArriere);
// Utilisation de rayon*2 pour la largeur et hauteur (cercle parfait) g2D.draw(new Arc2D.Double(x - rayon, y - rayon, rayon * 2, rayon * 2, 90, 180, Arc2D.OPEN)); //(cercle parfait)
g2D.draw(new Arc2D.Double(x - rayon, y - rayon, rayon * 2, rayon * 2, 90, 180, Arc2D.OPEN));
// DESSINER LA VOITURE (Au milieu) // DESSINER LA VOITURE
g.setColor(new Color(150, 50, 200)); g.setColor(new Color(150, 50, 200));
g.fillRect((int)x - 20, (int)y - 5, 40, 12); g.fillRect((int)x - 20, (int)y - 5, 40, 12);
@@ -41,7 +39,6 @@ public class Voiture extends Cercle {
g.setColor(Color.YELLOW); g.setColor(Color.YELLOW);
g.fillOval((int)x + 15, (int)y - 2, 6, 6); g.fillOval((int)x + 15, (int)y - 2, 6, 6);
// DESSINER LE DEMI-CERCLE AVANT (Par-dessus)
g2D.setColor(couleurAvant); g2D.setColor(couleurAvant);
g2D.draw(new Arc2D.Double(x - rayon, y - rayon, rayon * 2, rayon * 2, 90, -180, Arc2D.OPEN)); g2D.draw(new Arc2D.Double(x - rayon, y - rayon, rayon * 2, rayon * 2, 90, -180, Arc2D.OPEN));
} }