resolution bug score dans le mode 1 mais bug dans le mode 2,3 et 4
This commit is contained in:
@@ -1,14 +1,16 @@
|
||||
package fr.monkhanny.dorfromantik;
|
||||
|
||||
import fr.monkhanny.dorfromantik.gui.MainMenu;
|
||||
import fr.monkhanny.dorfromantik.gui.RewardsPanel;
|
||||
import fr.monkhanny.dorfromantik.controller.MainMenuResizeController;
|
||||
import fr.monkhanny.dorfromantik.controller.MainMenuButtonController;
|
||||
import fr.monkhanny.dorfromantik.utils.MusicPlayer;
|
||||
import fr.monkhanny.dorfromantik.enums.Musics;
|
||||
import fr.monkhanny.dorfromantik.listeners.SettingsWindowListener;
|
||||
import fr.monkhanny.dorfromantik.listeners.CloseWindowListener;
|
||||
import fr.monkhanny.dorfromantik.gui.SettingsPanel;
|
||||
import fr.monkhanny.dorfromantik.controller.TutorialController;
|
||||
|
||||
import fr.monkhanny.dorfromantik.controller.GameModeController;
|
||||
import fr.monkhanny.dorfromantik.gui.GameModeSelectionPanel;
|
||||
|
||||
import javax.swing.JFrame;
|
||||
|
||||
@@ -20,37 +22,89 @@ import javax.swing.JFrame;
|
||||
* @see MainMenuResizeController
|
||||
*/
|
||||
public class Main {
|
||||
/**
|
||||
* Méthode principale du jeu
|
||||
* @param args Tableau de String contenant les arguments passé en paramètre au programme
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
// Créer la fenêtre des paramètres
|
||||
JFrame settingsFrame = new JFrame("Paramètres");
|
||||
|
||||
// Créer la fenêtre du tutoriel
|
||||
JFrame howToPlayFrame = new JFrame("Comment jouer ?");
|
||||
private static JFrame gameModeFrame;
|
||||
private static JFrame gameFrame;
|
||||
private static JFrame settingsFrame;
|
||||
private static JFrame howToPlayFrame;
|
||||
private static JFrame rewardsFrame;
|
||||
|
||||
// Menu principal
|
||||
MusicPlayer.loadMusic(Musics.MAIN_MENU_MUSIC);
|
||||
MusicPlayer.playMusic();
|
||||
MainMenu mainMenu = new MainMenu();
|
||||
MainMenuResizeController MainMenuResizeController = new MainMenuResizeController(mainMenu);
|
||||
MainMenuButtonController MainMenuButtonController = new MainMenuButtonController(mainMenu,settingsFrame,howToPlayFrame);
|
||||
// Variable statique pour savoir si la musique a été jouée
|
||||
private static boolean isMusicPlayed = false;
|
||||
|
||||
// Fonction pour réinitialiser tout le jeu
|
||||
public static void resetGame() {
|
||||
// 1. Fermer toutes les fenêtres ouvertes
|
||||
if (gameModeFrame != null) {
|
||||
gameModeFrame.dispose(); // Ferme la fenêtre du choix des modes de jeu
|
||||
}
|
||||
if (gameFrame != null) {
|
||||
gameFrame.dispose(); // Ferme la fenêtre de jeu
|
||||
}
|
||||
if (settingsFrame != null) {
|
||||
settingsFrame.dispose(); // Ferme la fenêtre des paramètres
|
||||
}
|
||||
if (howToPlayFrame != null) {
|
||||
howToPlayFrame.dispose(); // Ferme la fenêtre du tutoriel
|
||||
}
|
||||
if (rewardsFrame != null) {
|
||||
rewardsFrame.dispose(); // Ferme la fenêtre des récompenses
|
||||
}
|
||||
|
||||
// Fenêtre des paramètres
|
||||
SettingsWindowListener windowListener = new SettingsWindowListener(mainMenu, settingsFrame);
|
||||
SettingsPanel settingsPanel = new SettingsPanel(mainMenu, settingsFrame);
|
||||
settingsFrame.addWindowListener(windowListener);
|
||||
settingsFrame.add(settingsPanel);
|
||||
settingsFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
||||
// 2. Réinitialiser les variables globales ou statiques si nécessaire
|
||||
Options.mainMenu = new MainMenu(); // Réinitialiser le menu principal
|
||||
|
||||
// Fenêtre du tutoriel
|
||||
TutorialController tutorialController = new TutorialController();
|
||||
howToPlayFrame.addWindowListener(windowListener);
|
||||
howToPlayFrame.add(tutorialController.getTutorialPanel());
|
||||
howToPlayFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
||||
// 3. Lancer la musique uniquement si ce n'est pas déjà fait
|
||||
if (!isMusicPlayed) {
|
||||
MusicPlayer.loadMusic(Musics.MAIN_MENU_MUSIC); // Recharger la musique du menu principal
|
||||
MusicPlayer.playMusic(); // Reprendre la musique
|
||||
isMusicPlayed = true; // Marquer la musique comme jouée
|
||||
}
|
||||
|
||||
}
|
||||
// 4. Créer les fenêtres à nouveau comme au début
|
||||
gameModeFrame = new JFrame("Choix des modes de jeu - Dorfromantik");
|
||||
gameFrame = new JFrame("Jeu - Dorfromantik");
|
||||
settingsFrame = new JFrame("Paramètres - Dorfromantik");
|
||||
howToPlayFrame = new JFrame("Comment jouer ? - Dorfromantik");
|
||||
rewardsFrame = new JFrame("Récompenses - Dorfromantik");
|
||||
|
||||
// Re-créer et réinitialiser les panels et les contrôleurs
|
||||
MainMenuResizeController mainMenuResizeController = new MainMenuResizeController(Options.mainMenu);
|
||||
MainMenuButtonController mainMenuButtonController = new MainMenuButtonController(Options.mainMenu, settingsFrame, howToPlayFrame, gameModeFrame, gameFrame, rewardsFrame);
|
||||
|
||||
// Fenêtre des paramètres
|
||||
CloseWindowListener settingsWindowListener = new CloseWindowListener(Options.mainMenu, settingsFrame);
|
||||
SettingsPanel settingsPanel = new SettingsPanel(Options.mainMenu, settingsFrame);
|
||||
settingsFrame.addWindowListener(settingsWindowListener);
|
||||
settingsFrame.add(settingsPanel);
|
||||
|
||||
// Fenêtre du tutoriel
|
||||
CloseWindowListener howToPlayWindowListener = new CloseWindowListener(Options.mainMenu, howToPlayFrame);
|
||||
TutorialController tutorialController = new TutorialController(Options.mainMenu, howToPlayFrame);
|
||||
howToPlayFrame.addWindowListener(howToPlayWindowListener);
|
||||
howToPlayFrame.add(tutorialController.getTutorialPanel());
|
||||
|
||||
// Fenêtre du choix des modes de jeu
|
||||
CloseWindowListener gameModeWindowListener = new CloseWindowListener(Options.mainMenu, gameModeFrame);
|
||||
GameModeController gameModeController = new GameModeController(gameFrame, Options.mainMenu, gameModeFrame);
|
||||
GameModeSelectionPanel gameModeSelectionPanel = new GameModeSelectionPanel(gameModeController);
|
||||
gameModeFrame.addWindowListener(gameModeWindowListener);
|
||||
gameModeController.setGameModeSelectionPanel(gameModeSelectionPanel);
|
||||
gameModeFrame.add(gameModeSelectionPanel);
|
||||
|
||||
// Fenêtre des récompenses
|
||||
CloseWindowListener rewardsWindowListener = new CloseWindowListener(Options.mainMenu, rewardsFrame);
|
||||
rewardsFrame.addWindowListener(rewardsWindowListener);
|
||||
RewardsPanel rewardsPanel = new RewardsPanel();
|
||||
rewardsFrame.setContentPane(rewardsPanel);
|
||||
rewardsFrame.pack();
|
||||
|
||||
// Afficher à nouveau le menu principal
|
||||
Options.mainMenu.setVisible(true);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
// Appel initial pour créer les fenêtres et démarrer le jeu
|
||||
resetGame(); // Appel à la fonction de réinitialisation
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user