Compare commits

..

2 Commits

Author SHA1 Message Date
6feffb79d9 Maj 2026-02-23 09:19:11 +01:00
5a974ce7ac ligne et modif bouton niveaux 2026-02-23 09:17:36 +01:00
2 changed files with 77 additions and 25 deletions

View File

@@ -16,6 +16,9 @@ public class Ligne extends ObjetGraphique{// Hérite de la classe ObjetGraphique
// nb de Segments qui composent la ligne // nb de Segments qui composent la ligne
protected int nbSegments = 400; protected int nbSegments = 400;
// amplitude maximale de l'inclinaison verticale des segments (dy)
protected double inclinaisonMax = 30.0;
// position du cercle, pour déterminer quel est le segment courant // position du cercle, pour déterminer quel est le segment courant
protected double xCercle = 400; // à modifier protected double xCercle = 400; // à modifier
@@ -49,7 +52,8 @@ public class Ligne extends ObjetGraphique{// Hérite de la classe ObjetGraphique
for (int i=0; i<nbSegments; i++){ for (int i=0; i<nbSegments; i++){
// définition d'un nouveau segment // définition d'un nouveau segment
dx = (Math.random()*20)+80; dx = (Math.random()*20)+80;
dy = (Math.random()*60)-30; // dy aléatoire dans [-inclinaisonMax, +inclinaisonMax]
dy = (Math.random() * (2.0 * inclinaisonMax)) - inclinaisonMax;
if (y + dy < 0 || y + dy > 600) { if (y + dy < 0 || y + dy > 600) {
dy = -dy; dy = -dy;
@@ -64,6 +68,15 @@ public class Ligne extends ObjetGraphique{// Hérite de la classe ObjetGraphique
} }
} }
public void setInclinaisonMax(double valeur) {
if (valeur < 0) valeur = -valeur;
this.inclinaisonMax = valeur;
}
public double getInclinaisonMax() {
return this.inclinaisonMax;
}
//------------------------------------------------------------------------- //-------------------------------------------------------------------------

View File

@@ -6,8 +6,15 @@ import javax.swing.*;
public class MenuCampagne extends JPanel { public class MenuCampagne extends JPanel {
public MenuCampagne(Jeu jeu) { public MenuCampagne(Jeu jeu) {
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); setLayout(new BorderLayout());
setBackground(new Color(45, 45, 45)); // Même gris foncé setBackground(new Color(45, 45, 45));
CardLayout cartes = new CardLayout();
JPanel panneauCartes = new JPanel(cartes);
JPanel listeCampagnes = new JPanel();
listeCampagnes.setLayout(new BoxLayout(listeCampagnes, BoxLayout.Y_AXIS));
listeCampagnes.setBackground(new Color(45, 45, 45));
JLabel titre = new JLabel("CAMPAGNES"); JLabel titre = new JLabel("CAMPAGNES");
titre.setForeground(Color.WHITE); titre.setForeground(Color.WHITE);
@@ -17,42 +24,74 @@ public class MenuCampagne extends JPanel {
JButton btnC1 = creerBouton("CAMPAGNE 1"); JButton btnC1 = creerBouton("CAMPAGNE 1");
JButton btnC2 = creerBouton("CAMPAGNE 2"); JButton btnC2 = creerBouton("CAMPAGNE 2");
JButton btnC3 = creerBouton("CAMPAGNE 3"); JButton btnC3 = creerBouton("CAMPAGNE 3");
JButton btnC4 = creerBouton("CAMPAGNE 4");
JButton btnRetour = creerBouton("RETOUR"); JButton btnRetour = creerBouton("RETOUR");
btnC1.addActionListener(e -> System.out.println("Lancement Campagne 1...")); listeCampagnes.add(Box.createVerticalGlue());
listeCampagnes.add(titre);
listeCampagnes.add(Box.createRigidArea(new Dimension(0, 40)));
btnC2.addActionListener(e -> { listeCampagnes.add(btnC1);
CampagneAutoroute campagne = new CampagneAutoroute(jeu); listeCampagnes.add(Box.createRigidArea(new Dimension(0, 10)));
campagne.lancerNiveau1(); listeCampagnes.add(btnC2);
}); listeCampagnes.add(Box.createRigidArea(new Dimension(0, 10)));
listeCampagnes.add(btnC3);
listeCampagnes.add(Box.createRigidArea(new Dimension(0, 30)));
listeCampagnes.add(btnRetour);
listeCampagnes.add(Box.createVerticalGlue());
// ---- Carte : sélection des niveaux ----
JPanel selectionNiveaux = new JPanel();
selectionNiveaux.setLayout(new BoxLayout(selectionNiveaux, BoxLayout.Y_AXIS));
selectionNiveaux.setBackground(new Color(45, 45, 45));
JLabel titreNiveaux = new JLabel("CHOISISSEZ UN NIVEAU");
titreNiveaux.setForeground(Color.WHITE);
titreNiveaux.setFont(new Font("SansSerif", Font.BOLD, 32));
titreNiveaux.setAlignmentX(Component.CENTER_ALIGNMENT);
JButton btnN1 = creerBouton("FACILE");
JButton btnN2 = creerBouton("MOYEN");
JButton btnN3 = creerBouton("DIFFICILE");
JButton btnRetourCampagnes = creerBouton("RETOUR AUX CAMPAGNES");
selectionNiveaux.add(Box.createVerticalGlue());
selectionNiveaux.add(titreNiveaux);
selectionNiveaux.add(Box.createRigidArea(new Dimension(0, 30)));
selectionNiveaux.add(btnN1);
selectionNiveaux.add(Box.createRigidArea(new Dimension(0, 10)));
selectionNiveaux.add(btnN2);
selectionNiveaux.add(Box.createRigidArea(new Dimension(0, 10)));
selectionNiveaux.add(btnN3);
selectionNiveaux.add(Box.createRigidArea(new Dimension(0, 30)));
selectionNiveaux.add(btnRetourCampagnes);
selectionNiveaux.add(Box.createVerticalGlue());
panneauCartes.add(listeCampagnes, "LISTE");
panneauCartes.add(selectionNiveaux, "NIVEAUX");
btnRetour.addActionListener(e -> jeu.afficherMenuPrincipal()); btnRetour.addActionListener(e -> jeu.afficherMenuPrincipal());
add(Box.createVerticalGlue()); ActionListener ouvrirNiveaux = e -> cartes.show(panneauCartes, "NIVEAUX");
add(titre); btnC1.addActionListener(ouvrirNiveaux);
add(Box.createRigidArea(new Dimension(0, 40))); btnC2.addActionListener(ouvrirNiveaux);
btnC3.addActionListener(ouvrirNiveaux);
btnC4.addActionListener(ouvrirNiveaux);
add(btnC1); btnRetourCampagnes.addActionListener(e -> cartes.show(panneauCartes, "LISTE"));
add(Box.createRigidArea(new Dimension(0, 10)));
add(btnC2);
add(Box.createRigidArea(new Dimension(0, 10)));
add(btnC3);
add(Box.createRigidArea(new Dimension(0, 10)));
add(btnC4);
add(Box.createRigidArea(new Dimension(0, 30))); // Espace plus grand avant le retour btnN1.addActionListener(e -> jeu.lancerNiveau(1));
add(btnRetour); btnN2.addActionListener(e -> jeu.lancerNiveau(2));
btnN3.addActionListener(e -> jeu.lancerNiveau(3));
add(Box.createVerticalGlue()); add(panneauCartes, BorderLayout.CENTER);
} }
private JButton creerBouton(String texte) { private JButton creerBouton(String texte) {
JButton b = new JButton(texte); JButton b = new JButton(texte);
b.setFont(new Font("SansSerif", Font.PLAIN, 18)); // Légèrement plus petit si tu veux b.setFont(new Font("SansSerif", Font.PLAIN, 18));
b.setAlignmentX(Component.CENTER_ALIGNMENT); b.setAlignmentX(Component.CENTER_ALIGNMENT);
b.setMaximumSize(new Dimension(200, 45)); b.setMaximumSize(new Dimension(240, 45));
b.setFocusable(false); b.setFocusable(false);
return b; return b;
} }