Ajout d'un game over stylisé
This commit is contained in:
@@ -54,7 +54,7 @@ public class Options {
|
||||
|
||||
public static boolean AUTO_FOCUS = true;
|
||||
|
||||
public static final int MAX_TILE_NUMBER = 50;
|
||||
public static final int MAX_TILE_NUMBER = 5;
|
||||
|
||||
public static boolean FULL_SCREEN = false;
|
||||
|
||||
|
@@ -2,6 +2,7 @@ package fr.monkhanny.dorfromantik.game;
|
||||
|
||||
import fr.monkhanny.dorfromantik.utils.Database;
|
||||
import fr.monkhanny.dorfromantik.Options;
|
||||
import fr.monkhanny.dorfromantik.enums.Fonts;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
@@ -20,45 +21,104 @@ public class GameOver extends JPanel {
|
||||
|
||||
setLayout(new BorderLayout());
|
||||
|
||||
// Message de fin de jeu
|
||||
JLabel messageLabel = new JLabel("Partie terminée ! Votre score est : " + finalScore, JLabel.CENTER);
|
||||
messageLabel.setFont(new Font("Arial", Font.BOLD, 24));
|
||||
add(messageLabel, BorderLayout.CENTER);
|
||||
// Background image setup
|
||||
JLabel background = new JLabel(new ImageIcon("./ressources/images/MainMenu/backgroundBlured.jpg"));
|
||||
background.setLayout(new GridBagLayout());
|
||||
this.add(background);
|
||||
|
||||
// Panneau pour entrer le pseudo
|
||||
JPanel inputPanel = new JPanel();
|
||||
inputPanel.setLayout(new FlowLayout());
|
||||
JLabel nameLabel = new JLabel("Entrez votre pseudo :");
|
||||
JTextField nameField = new JTextField(20);
|
||||
JButton submitButton = new JButton("Soumettre");
|
||||
// Main content panel
|
||||
JPanel mainPanel = createMainPanel();
|
||||
background.add(mainPanel);
|
||||
|
||||
// Title for the Game Over message
|
||||
JLabel titleLabel = new JLabel("Partie terminée !");
|
||||
titleLabel.setFont(Fonts.TITLE.getFont(48)); // Using the TITLE font
|
||||
titleLabel.setForeground(Color.WHITE);
|
||||
mainPanel.add(titleLabel, createGridBagConstraints(0, 0, 2));
|
||||
|
||||
// Display final score
|
||||
JLabel scoreLabel = new JLabel("Votre score est de : " + finalScore);
|
||||
scoreLabel.setFont(Fonts.SCORE.getFont(36)); // Using the SCORE font
|
||||
scoreLabel.setForeground(Color.WHITE);
|
||||
mainPanel.add(scoreLabel, createGridBagConstraints(0, 1, 2));
|
||||
|
||||
// Vertical spacer
|
||||
mainPanel.add(Box.createVerticalStrut(20), createGridBagConstraints(0, 2, 1));
|
||||
|
||||
// Input panel for username and submission
|
||||
JPanel inputPanel = createInputPanel();
|
||||
mainPanel.add(inputPanel, createGridBagConstraints(0, 3, 2));
|
||||
|
||||
// Vertical spacer
|
||||
mainPanel.add(Box.createVerticalStrut(20), createGridBagConstraints(0, 4, 1));
|
||||
}
|
||||
|
||||
private JPanel createMainPanel() {
|
||||
JPanel mainPanel = new JPanel(new GridBagLayout());
|
||||
mainPanel.setOpaque(false); // Transparent background
|
||||
return mainPanel;
|
||||
}
|
||||
|
||||
private JPanel createInputPanel() {
|
||||
JPanel inputPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 20, 10));
|
||||
inputPanel.setOpaque(false);
|
||||
|
||||
// Username label and text field
|
||||
JLabel nameLabel = new JLabel("Entrez votre pseudo (facultatif) :");
|
||||
nameLabel.setForeground(Color.WHITE);
|
||||
nameLabel.setFont(Fonts.SCORE.getFont(24));
|
||||
inputPanel.add(nameLabel);
|
||||
inputPanel.add(nameField);
|
||||
inputPanel.add(submitButton);
|
||||
add(inputPanel, BorderLayout.SOUTH);
|
||||
|
||||
// Action pour soumettre le pseudo et enregistrer dans la base de données
|
||||
JTextField nameField = new JTextField(20);
|
||||
nameField.setFont(Fonts.SCORE.getFont(18));
|
||||
nameField.setPreferredSize(new Dimension(250, 40));
|
||||
nameField.setBorder(BorderFactory.createLineBorder(Color.WHITE, 2));
|
||||
nameField.setText("Anonyme");
|
||||
inputPanel.add(nameField);
|
||||
|
||||
// Submit button
|
||||
JButton submitButton = new JButton("Soumettre");
|
||||
submitButton.setFont(Fonts.BUTTON.getFont(24)); // Using the BUTTON font
|
||||
submitButton.setBackground(new Color(0, 255, 0));
|
||||
submitButton.setForeground(Color.WHITE);
|
||||
submitButton.setBorder(BorderFactory.createLineBorder(Color.WHITE, 2));
|
||||
submitButton.setPreferredSize(new Dimension(150, 50));
|
||||
inputPanel.add(submitButton);
|
||||
|
||||
// Action to handle score submission
|
||||
submitButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
String username = nameField.getText().trim();
|
||||
if (username.isEmpty()) {
|
||||
username = "Anonyme"; // Si aucun pseudo n'est donné, on utilise "Anonyme"
|
||||
username = "Anonyme"; // Default to "Anonyme" if no name is given
|
||||
}
|
||||
|
||||
// Enregistrer le score dans la base de données
|
||||
// Save the score to the database
|
||||
try {
|
||||
long seriesId = Options.SEED; // Remplacer par l'ID de la série ou du mode de jeu
|
||||
long seriesId = Options.SEED; // Replace with the appropriate series ID
|
||||
database.addScore(username, seriesId, finalScore);
|
||||
JOptionPane.showMessageDialog(gameFrame, "Score enregistré avec succès !");
|
||||
} catch (Exception ex) {
|
||||
JOptionPane.showMessageDialog(gameFrame, "Erreur lors de l'enregistrement du score : " + ex.getMessage());
|
||||
}
|
||||
|
||||
// Retourner au menu principal ou à une autre vue après la fin du jeu
|
||||
// Close game over screen and return to the main menu
|
||||
gameFrame.setVisible(false);
|
||||
// Ajoutez ici le code pour retourner à l'écran principal, ou démarrer une nouvelle partie.
|
||||
// Add code here to return to the main menu or start a new game.
|
||||
}
|
||||
});
|
||||
|
||||
return inputPanel;
|
||||
}
|
||||
|
||||
private GridBagConstraints createGridBagConstraints(int x, int y, int gridWidth) {
|
||||
GridBagConstraints gbc = new GridBagConstraints();
|
||||
gbc.gridx = x;
|
||||
gbc.gridy = y;
|
||||
gbc.gridwidth = gridWidth;
|
||||
gbc.fill = GridBagConstraints.HORIZONTAL;
|
||||
gbc.insets = new Insets(10, 20, 10, 20); // Adjust spacing
|
||||
return gbc;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user