Compare commits
3 Commits
ade491ed5e
...
84df35373a
| Author | SHA1 | Date | |
|---|---|---|---|
| 84df35373a | |||
| dcd2d9dfe0 | |||
| 676c59b0d7 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
projet_linea/bin/MenuPrincipal.class
Normal file
BIN
projet_linea/bin/MenuPrincipal.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -14,7 +14,7 @@ public class Jeu implements KeyListener, ActionListener{
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
// Ecran : instance de ZoneDessin, qui contiendra tous les objets graphiques
|
||||
// On ne vapas créer directement l'écran car ça va créer un flash
|
||||
// On ne va pas créer directement l'écran car ça va créer un flash
|
||||
// Dès le lancement du jeu avec l'image de fond par défaut et l'imga du niveau
|
||||
// et les animera
|
||||
protected ZoneDessin ecran;
|
||||
|
||||
113
projet_linea/src/MenuPrincipal.java
Normal file
113
projet_linea/src/MenuPrincipal.java
Normal file
@@ -0,0 +1,113 @@
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
// ★★★ CLASSE CREEE PAR L'UTILISATEUR ★★★
|
||||
// Fichier : MenuPrincipal.java (nouveau fichier)
|
||||
// Objectif : afficher un menu d'accueil APRES la connexion réussie
|
||||
// Remplace : l'ancien démarrage direct du jeu après connexion
|
||||
// Fonctionnalités : 2 boutons (Lancer le jeu / Voir mes scores)
|
||||
|
||||
// Fenêtre du menu principal affichée après la connexion
|
||||
public class MenuPrincipal extends JFrame {
|
||||
|
||||
// ID de l'utilisateur connecté
|
||||
private final int utilisateurId;
|
||||
|
||||
// Constructeur du menu principal
|
||||
// Affiche un écran d'accueil avec deux options : "Lancer le jeu" et "Voir mes scores"
|
||||
// ★★★ CONSTRUCTEUR CREE PAR L'UTILISATEUR ★★★
|
||||
// Nouveau : il n'existait pas avant, crée le menu principal
|
||||
public MenuPrincipal(int utilisateurId, String userName) {
|
||||
// Sauvegarde l'ID pour l'utiliser lors des appels à la base de données
|
||||
this.utilisateurId = utilisateurId;
|
||||
|
||||
// Configuration de la fenêtre
|
||||
setTitle("Menu Principal - Linea"); // Titre de la fenêtre
|
||||
setSize(800, 600); // Dimensions de la fenêtre
|
||||
setDefaultCloseOperation(EXIT_ON_CLOSE); // Quitter l'app à la fermeture
|
||||
setLocationRelativeTo(null); // Centre la fenêtre
|
||||
|
||||
// Crée le panneau principal avec un fond sombre
|
||||
JPanel panel = new JPanel(new GridBagLayout()); // GridBagLayout pour centrage
|
||||
panel.setBackground(new Color(30, 30, 30)); // Fond gris très foncé
|
||||
add(panel);
|
||||
|
||||
// Crée une boîte verticale pour disposer les éléments de haut en bas
|
||||
Box box = Box.createVerticalBox(); // Disposition verticale
|
||||
box.setAlignmentX(Component.CENTER_ALIGNMENT); // Centré horizontalement
|
||||
|
||||
// Crée un titre de bienvenue personalisé avec le nom de l'utilisateur
|
||||
JLabel titre = new JLabel("Bienvenue, " + userName + " !");
|
||||
titre.setForeground(Color.WHITE); // Texte blanc
|
||||
titre.setFont(new Font("Arial", Font.BOLD, 26)); // Police Arial gras 26pt
|
||||
titre.setAlignmentX(Component.CENTER_ALIGNMENT); // Centré
|
||||
|
||||
// Crée le bouton "Lancer le jeu" pour démarrer une partie
|
||||
JButton demarrer = new JButton("Lancer le jeu");
|
||||
demarrer.setBackground(new Color(70, 130, 180)); // Couleur bleu acier
|
||||
demarrer.setForeground(Color.WHITE); // Texte blanc
|
||||
demarrer.setFocusPainted(false); // Pas de bordure au focus
|
||||
demarrer.setMaximumSize(new Dimension(220, 40)); // Dimension du bouton
|
||||
demarrer.setAlignmentX(Component.CENTER_ALIGNMENT); // Centré horizontalement
|
||||
|
||||
|
||||
// Au clic, ferme ce menu et lance le jeu
|
||||
// ★★★ ACTION MODIFIEE PAR L'UTILISATEUR ★★★
|
||||
// Lance le jeu APRES fermeture du menu (ajout du menu principal)
|
||||
demarrer.addActionListener(e -> {
|
||||
// Ferme la fenêtre de menu
|
||||
dispose();
|
||||
// Crée une instance du jeu avec l'ID utilisateur (authentifié)
|
||||
Jeu jeu = new Jeu(utilisateurId);
|
||||
// Démarre l'affichage et l'initialisation du jeu
|
||||
jeu.demarrer();
|
||||
});
|
||||
|
||||
// Crée le bouton "Voir mes scores" pour afficher l'historique
|
||||
// ★★★ NOUVEAU BOUTON PAR L'UTILISATEUR ★★★
|
||||
// Nouvelle fonctionnalité : permet de voir les scores AVANT de lancer le jeu
|
||||
// Utilise les méthodes : GestionBDD.recupererScoresUtilisateur()
|
||||
// GestionBDD.recupererMeilleurScoreUtilisateur()
|
||||
JButton scores = new JButton("Voir mes scores");
|
||||
scores.setBackground(new Color(70, 130, 180)); // Couleur bleu acier (même que demarrer)
|
||||
scores.setForeground(Color.WHITE); // Texte blanc
|
||||
scores.setFocusPainted(false); // Pas de bordure au focus
|
||||
scores.setMaximumSize(new Dimension(220, 40)); // Dimension du bouton
|
||||
scores.setAlignmentX(Component.CENTER_ALIGNMENT); // Centré horizontalement
|
||||
|
||||
|
||||
// Au clic, récupère et affiche les scores depuis la base de données
|
||||
// ★★★ ACTION PAR L'UTILISATEUR ★★★
|
||||
// Nouvelle action : afficher les scores historiques du joueur dans une popup
|
||||
// Récupère : tous les scores + le meilleur score
|
||||
scores.addActionListener(e -> {
|
||||
// Récupère la liste de tous les scores de l'utilisateur depuis la BD
|
||||
java.util.List<Integer> scoreList = GestionBDD.recupererScoresUtilisateur(utilisateurId);
|
||||
// Récupère aussi le meilleur score (score maximum) depuis la BD
|
||||
int meilleurScore = GestionBDD.recupererMeilleurScoreUtilisateur(utilisateurId);
|
||||
|
||||
// Construit un message texte avec tous les scores à afficher
|
||||
StringBuilder message = new StringBuilder();
|
||||
message.append("Meilleur score : ").append(meilleurScore).append("\n\n");
|
||||
message.append("Tous les scores :\n");
|
||||
|
||||
// Ajoute chaque score à la liste, un par un
|
||||
for (int s : scoreList) {
|
||||
message.append(s).append("\n");
|
||||
}
|
||||
|
||||
// Affiche les scores dans une boîte de dialogue popup
|
||||
JOptionPane.showMessageDialog(this, message.toString(), "Mes Scores", JOptionPane.INFORMATION_MESSAGE);
|
||||
});
|
||||
|
||||
// Ajoute tous les éléments dans la boîte
|
||||
box.add(titre);
|
||||
box.add(Box.createVerticalStrut(40)); // Espace de 40 pixels après le titre
|
||||
box.add(demarrer);
|
||||
box.add(Box.createVerticalStrut(15)); // Espace de 15 pixels entre les deux boutons
|
||||
box.add(scores);
|
||||
|
||||
// Ajoute la boîte au panneau principal
|
||||
panel.add(box);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user