gros netoyage + éclaircissement de la ligne
This commit is contained in:
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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)));
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user