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