Ajouts d'un menu de pause
This commit is contained in:
@@ -66,4 +66,6 @@ public class Options {
|
||||
public static MainMenu mainMenu;
|
||||
|
||||
public static boolean isPlaying = false;
|
||||
|
||||
public static boolean isPaused = false;
|
||||
}
|
||||
|
@@ -92,6 +92,9 @@ public class GameModeController implements ActionListener {
|
||||
// Supprimer la potentielle ancienne instance de board
|
||||
GameModeController.board = null;
|
||||
|
||||
// Cacher la fenêtre de sélection de mode
|
||||
this.gameModeFrame.setVisible(false);
|
||||
|
||||
// Cacher la fenêtre avant de faire des modifications
|
||||
this.gameFrame.setVisible(false);
|
||||
|
||||
|
@@ -82,6 +82,9 @@ public class Board extends JPanel{
|
||||
|
||||
this.addMouseListener(new GameMouseClickListener(this));
|
||||
|
||||
gameFrame.addKeyListener(new PauseGame(gameFrame, game));
|
||||
gameFrame.setFocusable(true);
|
||||
|
||||
this.addMouseMotionListener(new MouseMotionAdapter() {
|
||||
@Override
|
||||
public void mouseMoved(java.awt.event.MouseEvent e) {
|
||||
|
80
src/fr/monkhanny/dorfromantik/game/EscapeMenu.java
Normal file
80
src/fr/monkhanny/dorfromantik/game/EscapeMenu.java
Normal file
@@ -0,0 +1,80 @@
|
||||
package fr.monkhanny.dorfromantik.game;
|
||||
|
||||
import fr.monkhanny.dorfromantik.components.Title;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class EscapeMenu extends JFrame {
|
||||
|
||||
private JButton resumeButton;
|
||||
private JButton mainMenuButton;
|
||||
private JButton settingsButton;
|
||||
|
||||
public EscapeMenu(JFrame gameFrame, Game game) {
|
||||
// Paramétrer la fenêtre de la pause
|
||||
setTitle("Menu de Pause");
|
||||
setSize(550, 200); // Taille de la fenêtre
|
||||
setLocationRelativeTo(gameFrame); // Centrer la fenêtre sur le jeu
|
||||
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); // Fermer sans quitter l'application
|
||||
setLayout(new BorderLayout()); // Utiliser BorderLayout pour gérer les composants
|
||||
|
||||
// Ajouter l'image de fond
|
||||
JLabel background = new JLabel(new ImageIcon("./ressources/images/MainMenu/backgroundBlured.jpg"));
|
||||
background.setLayout(new BorderLayout());
|
||||
this.add(background);
|
||||
|
||||
// Créer un panneau principal
|
||||
JPanel panel = new JPanel();
|
||||
panel.setLayout(new BorderLayout());
|
||||
panel.setOpaque(false); // Garder le fond transparent
|
||||
background.add(panel, BorderLayout.CENTER); // Ajouter le panneau dans le centre de l'image
|
||||
|
||||
// Ajouter le message "Jeu en pause" centré en haut
|
||||
Title pauseLabel = new Title("Jeu en pause", 34f);
|
||||
panel.add(pauseLabel, BorderLayout.NORTH); // Placer le titre dans la partie nord du BorderLayout
|
||||
|
||||
// Créer le panneau des boutons avec un FlowLayout horizontal
|
||||
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 20, 10));
|
||||
buttonPanel.setOpaque(false); // Garder le fond transparent
|
||||
|
||||
// Créer les boutons et ajouter les écouteurs d'événements
|
||||
resumeButton = createButton("Reprendre");
|
||||
settingsButton = createButton("Paramètres");
|
||||
mainMenuButton = createButton("Menu Principal");
|
||||
|
||||
// Ajouter les boutons dans le panneau
|
||||
buttonPanel.add(resumeButton);
|
||||
buttonPanel.add(settingsButton);
|
||||
buttonPanel.add(mainMenuButton);
|
||||
|
||||
// Ajouter le panneau des boutons au panneau principal
|
||||
panel.add(buttonPanel, BorderLayout.SOUTH);
|
||||
|
||||
setVisible(true); // Afficher la fenêtre
|
||||
}
|
||||
|
||||
private JButton createButton(String text) {
|
||||
JButton button = new JButton(text);
|
||||
button.setFont(new Font("Tahoma", Font.PLAIN, 18));
|
||||
button.setBackground(new Color(0, 122, 255)); // Bleu lumineux pour les boutons
|
||||
button.setForeground(Color.WHITE);
|
||||
button.setFocusPainted(false);
|
||||
button.setBorder(BorderFactory.createLineBorder(Color.WHITE, 2)); // Bordure blanche
|
||||
button.setPreferredSize(new Dimension(150, 50)); // Taille des boutons
|
||||
return button;
|
||||
}
|
||||
|
||||
public void setResumeButtonListener(ActionListener listener) {
|
||||
resumeButton.addActionListener(listener);
|
||||
}
|
||||
|
||||
public void setMainMenuButtonListener(ActionListener listener) {
|
||||
mainMenuButton.addActionListener(listener);
|
||||
}
|
||||
|
||||
public void setSettingsButtonListener(ActionListener listener) {
|
||||
settingsButton.addActionListener(listener);
|
||||
}
|
||||
}
|
@@ -0,0 +1,31 @@
|
||||
package fr.monkhanny.dorfromantik.game;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JFrame;
|
||||
|
||||
import fr.monkhanny.dorfromantik.Main;
|
||||
import fr.monkhanny.dorfromantik.Options;
|
||||
|
||||
public class MainMenuButtonListener implements ActionListener {
|
||||
private JFrame gameFrame;
|
||||
private Game game;
|
||||
|
||||
public MainMenuButtonListener(JFrame gameFrame, Game game) {
|
||||
this.gameFrame = gameFrame;
|
||||
this.game = game;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
// Réinitialiser le jeu
|
||||
//Main.resetGame();
|
||||
|
||||
// ou
|
||||
|
||||
// Fermer la fenêtre de jeu et revenir au menu principal
|
||||
gameFrame.setVisible(false);
|
||||
Options.mainMenu.setVisible(true);
|
||||
Options.isPaused = false;
|
||||
}
|
||||
}
|
37
src/fr/monkhanny/dorfromantik/game/PauseGame.java
Normal file
37
src/fr/monkhanny/dorfromantik/game/PauseGame.java
Normal file
@@ -0,0 +1,37 @@
|
||||
package fr.monkhanny.dorfromantik.game;
|
||||
|
||||
import fr.monkhanny.dorfromantik.Options;
|
||||
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public class PauseGame extends KeyAdapter {
|
||||
private JFrame gameFrame;
|
||||
private Game game;
|
||||
private EscapeMenu escapeMenu;
|
||||
|
||||
public PauseGame(JFrame gameFrame, Game game) {
|
||||
this.gameFrame = gameFrame;
|
||||
this.game = game;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyPressed(KeyEvent e) {
|
||||
if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
|
||||
if (Options.isPaused == false) {
|
||||
// Afficher le menu de pause seulement si aucun menu n'est déjà ouvert
|
||||
Options.isPaused = true;
|
||||
if (escapeMenu == null || !escapeMenu.isVisible()) {
|
||||
escapeMenu = new EscapeMenu(gameFrame, game);
|
||||
escapeMenu.setResumeButtonListener(new ResumeButtonListener(gameFrame));
|
||||
escapeMenu.setMainMenuButtonListener(new MainMenuButtonListener(gameFrame, game));
|
||||
escapeMenu.setSettingsButtonListener(new SettingsButtonListener(gameFrame));
|
||||
} else {
|
||||
escapeMenu.setVisible(true); // Si la fenêtre est déjà ouverte, la rendre visible
|
||||
}
|
||||
escapeMenu.toFront(); // Mettre la fenêtre au premier plan
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
22
src/fr/monkhanny/dorfromantik/game/ResumeButtonListener.java
Normal file
22
src/fr/monkhanny/dorfromantik/game/ResumeButtonListener.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package fr.monkhanny.dorfromantik.game;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JFrame;
|
||||
|
||||
import fr.monkhanny.dorfromantik.Options;
|
||||
|
||||
public class ResumeButtonListener implements ActionListener {
|
||||
private JFrame gameFrame;
|
||||
|
||||
public ResumeButtonListener(JFrame gameFrame) {
|
||||
this.gameFrame = gameFrame;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
// Fermer le menu de pause et afficher le jeu
|
||||
gameFrame.setVisible(true);
|
||||
Options.isPaused = false;
|
||||
}
|
||||
}
|
@@ -0,0 +1,18 @@
|
||||
package fr.monkhanny.dorfromantik.game;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public class SettingsButtonListener implements ActionListener {
|
||||
private JFrame gameFrame;
|
||||
|
||||
public SettingsButtonListener(JFrame gameFrame) {
|
||||
this.gameFrame = gameFrame;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user