Modification du menu de pause
This commit is contained in:
@@ -99,6 +99,10 @@ public class Board extends JPanel{
|
||||
}
|
||||
|
||||
public void handleMouseMove(java.awt.event.MouseEvent e) {
|
||||
if (Options.isPaused) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Récupérer les coordonnées du curseur
|
||||
Point cursorPoint = e.getPoint();
|
||||
|
||||
@@ -131,6 +135,10 @@ public class Board extends JPanel{
|
||||
public Tile getNextTile() { return nextTile; }
|
||||
|
||||
public void handleSpaceKeyPress() {
|
||||
if (Options.isPaused) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Calculer les dimensions totales du plateau (largeur et hauteur des tuiles)
|
||||
int totalWidth = 0;
|
||||
int totalHeight = 0;
|
||||
@@ -171,6 +179,10 @@ public class Board extends JPanel{
|
||||
|
||||
|
||||
public void handleMouseClick(java.awt.event.MouseEvent e) {
|
||||
if (Options.isPaused) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Récupérer les coordonnées du clic
|
||||
Point clickedPoint = e.getPoint();
|
||||
|
||||
|
@@ -16,6 +16,8 @@ public class EscapeMenu extends JFrame {
|
||||
// Paramétrer la fenêtre de la pause
|
||||
setTitle("Menu de Pause");
|
||||
setSize(550, 200); // Taille de la fenêtre
|
||||
setMaximumSize(new Dimension(550,200));
|
||||
setMinimumSize(new Dimension(550,200));
|
||||
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
|
||||
@@ -42,7 +44,7 @@ public class EscapeMenu extends JFrame {
|
||||
// Créer les boutons et ajouter les écouteurs d'événements
|
||||
resumeButton = createButton("Reprendre");
|
||||
settingsButton = createButton("Paramètres");
|
||||
mainMenuButton = createButton("Menu Principal");
|
||||
mainMenuButton = createButton("Quitter");
|
||||
|
||||
// Ajouter les boutons dans le panneau
|
||||
buttonPanel.add(resumeButton);
|
||||
@@ -70,11 +72,15 @@ public class EscapeMenu extends JFrame {
|
||||
resumeButton.addActionListener(listener);
|
||||
}
|
||||
|
||||
public void setMainMenuButtonListener(ActionListener listener) {
|
||||
public void setQuitButtonListener(ActionListener listener) {
|
||||
mainMenuButton.addActionListener(listener);
|
||||
}
|
||||
|
||||
public void setSettingsButtonListener(ActionListener listener) {
|
||||
settingsButton.addActionListener(listener);
|
||||
}
|
||||
|
||||
public void setMenuVisible(boolean visible) {
|
||||
setVisible(visible);
|
||||
}
|
||||
}
|
||||
|
@@ -145,7 +145,7 @@ public class GameOver extends JPanel {
|
||||
returnButton.setForeground(Color.BLACK); // Couleur du texte du bouton
|
||||
|
||||
// Ajouter un listener d'action au bouton
|
||||
MainMenuButtonListener listener = new MainMenuButtonListener(gameFrame, null, null);
|
||||
MainMenuButtonListener listener = new MainMenuButtonListener(gameFrame);
|
||||
returnButton.addActionListener(listener);
|
||||
|
||||
// Ajouter le bouton au panneau principal
|
||||
|
@@ -6,22 +6,18 @@ import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JFrame;
|
||||
|
||||
import fr.monkhanny.dorfromantik.Options;
|
||||
import fr.monkhanny.dorfromantik.gui.MainMenu;
|
||||
|
||||
public class MainMenuButtonListener implements ActionListener {
|
||||
private JFrame gameFrame;
|
||||
private Game game;
|
||||
private EscapeMenu escapeMenu;
|
||||
|
||||
public MainMenuButtonListener(JFrame gameFrame, Game game, EscapeMenu escapeMenu) {
|
||||
public MainMenuButtonListener(JFrame gameFrame) {
|
||||
this.gameFrame = gameFrame;
|
||||
this.game = game;
|
||||
this.escapeMenu = escapeMenu;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
this.gameFrame.setVisible(false);
|
||||
Main.resetGame();
|
||||
}
|
||||
}
|
||||
}
|
@@ -11,33 +11,33 @@ public class PauseGame extends KeyAdapter {
|
||||
private Game game;
|
||||
private EscapeMenu escapeMenu;
|
||||
private ResumeButtonListener resumeButtonListener;
|
||||
private MainMenuButtonListener mainMenuButtonListener;
|
||||
private QuitButtonListener quitButtonListener;
|
||||
private SettingsButtonListener settingsButtonListener;
|
||||
|
||||
public PauseGame(JFrame gameFrame, Game game) {
|
||||
this.gameFrame = gameFrame;
|
||||
this.game = game;
|
||||
this.resumeButtonListener = new ResumeButtonListener(gameFrame);
|
||||
this.mainMenuButtonListener = null; // Initialisé après la création de escapeMenu
|
||||
this.settingsButtonListener = new SettingsButtonListener(gameFrame);
|
||||
// Initialiser escapeMenu ici avant de le passer à SettingsButtonListener
|
||||
this.escapeMenu = new EscapeMenu(gameFrame, game); // Initialisation ici
|
||||
this.escapeMenu.setVisible(false);
|
||||
this.escapeMenu.setAlwaysOnTop(true);
|
||||
this.resumeButtonListener = new ResumeButtonListener(gameFrame,this.escapeMenu);
|
||||
this.quitButtonListener = new QuitButtonListener();; // Initialisé après la création de escapeMenu
|
||||
this.settingsButtonListener = new SettingsButtonListener(gameFrame, this.escapeMenu); // Passer escapeMenu correctement
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyPressed(KeyEvent e) {
|
||||
if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
|
||||
if (Options.isPaused == false) {
|
||||
if(Options.isPaused == false){
|
||||
Options.isPaused = true;
|
||||
if (escapeMenu == null || !escapeMenu.isVisible()) {
|
||||
escapeMenu = new EscapeMenu(gameFrame, game);
|
||||
this.mainMenuButtonListener = new MainMenuButtonListener(gameFrame, game, escapeMenu);
|
||||
escapeMenu.setResumeButtonListener(this.resumeButtonListener);
|
||||
escapeMenu.setMainMenuButtonListener(this.mainMenuButtonListener);
|
||||
escapeMenu.setSettingsButtonListener(this.settingsButtonListener);
|
||||
} else {
|
||||
escapeMenu.setVisible(true);
|
||||
}
|
||||
escapeMenu.toFront();
|
||||
escapeMenu.setResumeButtonListener(this.resumeButtonListener);
|
||||
escapeMenu.setQuitButtonListener(this.quitButtonListener);
|
||||
escapeMenu.setSettingsButtonListener(this.settingsButtonListener);
|
||||
this.escapeMenu.setVisible(true);
|
||||
}
|
||||
escapeMenu.toFront();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
18
src/fr/monkhanny/dorfromantik/game/QuitButtonListener.java
Normal file
18
src/fr/monkhanny/dorfromantik/game/QuitButtonListener.java
Normal file
@@ -0,0 +1,18 @@
|
||||
package fr.monkhanny.dorfromantik.game;
|
||||
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class QuitButtonListener implements ActionListener {
|
||||
|
||||
public QuitButtonListener() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
// Quitter
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
@@ -8,15 +8,17 @@ import fr.monkhanny.dorfromantik.Options;
|
||||
|
||||
public class ResumeButtonListener implements ActionListener {
|
||||
private JFrame gameFrame;
|
||||
private EscapeMenu escapeMenu;
|
||||
|
||||
public ResumeButtonListener(JFrame gameFrame) {
|
||||
public ResumeButtonListener(JFrame gameFrame, EscapeMenu escapeMenu) {
|
||||
this.gameFrame = gameFrame;
|
||||
this.escapeMenu = escapeMenu;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
// Fermer le menu de pause et afficher le jeu
|
||||
gameFrame.setVisible(true);
|
||||
Options.isPaused = false;
|
||||
// Cacher le menu de pause
|
||||
escapeMenu.setVisible(false);
|
||||
Options.isPaused = false; // Mettre à jour l'état du jeu pour qu'il ne soit plus en pause
|
||||
}
|
||||
}
|
||||
|
@@ -13,9 +13,11 @@ public class SettingsButtonListener implements ActionListener {
|
||||
private JFrame gameFrame;
|
||||
private JFrame settingsFrame;
|
||||
private SettingsPanel settingsPanel;
|
||||
private EscapeMenu escapeMenu;
|
||||
|
||||
public SettingsButtonListener(JFrame gameFrame) {
|
||||
public SettingsButtonListener(JFrame gameFrame, EscapeMenu escapeMenu) {
|
||||
this.gameFrame = gameFrame;
|
||||
this.escapeMenu = escapeMenu;
|
||||
this.settingsFrame = new JFrame("Paramètres - Dorfromantik");
|
||||
this.settingsPanel = new SettingsPanel(Options.mainMenu, settingsFrame);
|
||||
this.settingsPanel.setReturnButtonVisible(false); // On cache le bouton de retour au menu principal
|
||||
@@ -26,9 +28,13 @@ public class SettingsButtonListener implements ActionListener {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (escapeMenu != null) { // Vérifier si escapeMenu est non nul
|
||||
escapeMenu.setVisible(false);
|
||||
}
|
||||
|
||||
// Obtenir la taille et la position de la gameFrame
|
||||
int width = gameFrame.getWidth();
|
||||
int height = gameFrame.getHeight();
|
||||
int width = gameFrame.getWidth() - 50;
|
||||
int height = gameFrame.getHeight() - 50;
|
||||
int x = gameFrame.getX();
|
||||
int y = gameFrame.getY();
|
||||
|
||||
@@ -40,8 +46,8 @@ public class SettingsButtonListener implements ActionListener {
|
||||
settingsFrame.add(this.settingsPanel);
|
||||
|
||||
// Cacher la gameFrame et afficher settingsFrame
|
||||
gameFrame.setVisible(false);
|
||||
settingsFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
||||
settingsFrame.setVisible(true);
|
||||
Options.isPaused = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user