Correction des bugs de son + amélioration du code pour des meilleurs performances
This commit is contained in:
@@ -5,6 +5,10 @@ import fr.monkhanny.dorfromantik.controller.MainMenuResizeController;
|
|||||||
import fr.monkhanny.dorfromantik.controller.MainMenuButtonController;
|
import fr.monkhanny.dorfromantik.controller.MainMenuButtonController;
|
||||||
import fr.monkhanny.dorfromantik.utils.MusicPlayer;
|
import fr.monkhanny.dorfromantik.utils.MusicPlayer;
|
||||||
import fr.monkhanny.dorfromantik.enums.Musics;
|
import fr.monkhanny.dorfromantik.enums.Musics;
|
||||||
|
import fr.monkhanny.dorfromantik.listeners.SettingsWindowListener;
|
||||||
|
import fr.monkhanny.dorfromantik.gui.SettingsPanel;
|
||||||
|
|
||||||
|
import javax.swing.JFrame;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Classe principale du jeu
|
* Classe principale du jeu
|
||||||
@@ -19,10 +23,23 @@ public class Main {
|
|||||||
* @param args Tableau de String contenant les arguments passé en paramètre au programme
|
* @param args Tableau de String contenant les arguments passé en paramètre au programme
|
||||||
*/
|
*/
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
// Créer la fenêtre des paramètres
|
||||||
|
JFrame settingsFrame = new JFrame("Paramètres");
|
||||||
|
|
||||||
|
// Menu principal
|
||||||
MusicPlayer.loadMusic(Musics.MAIN_MENU_MUSIC);
|
MusicPlayer.loadMusic(Musics.MAIN_MENU_MUSIC);
|
||||||
MusicPlayer.playMusic();
|
MusicPlayer.playMusic();
|
||||||
MainMenu mainMenu = new MainMenu();
|
MainMenu mainMenu = new MainMenu();
|
||||||
MainMenuResizeController MainMenuResizeController = new MainMenuResizeController(mainMenu);
|
MainMenuResizeController MainMenuResizeController = new MainMenuResizeController(mainMenu);
|
||||||
MainMenuButtonController MainMenuButtonController = new MainMenuButtonController(mainMenu);
|
MainMenuButtonController MainMenuButtonController = new MainMenuButtonController(mainMenu,settingsFrame);
|
||||||
|
|
||||||
|
|
||||||
|
// 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);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -18,7 +18,7 @@ public class MainMenuButtonController implements ActionListener {
|
|||||||
|
|
||||||
private JFrame settingsFrame;
|
private JFrame settingsFrame;
|
||||||
|
|
||||||
public MainMenuButtonController(MainMenu mainMenu) {
|
public MainMenuButtonController(MainMenu mainMenu, JFrame settingsFrame) {
|
||||||
this.mainMenu = mainMenu;
|
this.mainMenu = mainMenu;
|
||||||
// Ajouter les écouteurs d'événements sur les boutons
|
// Ajouter les écouteurs d'événements sur les boutons
|
||||||
ButtonPanel buttonPanel = mainMenu.getButtonPanel();
|
ButtonPanel buttonPanel = mainMenu.getButtonPanel();
|
||||||
@@ -31,7 +31,7 @@ public class MainMenuButtonController implements ActionListener {
|
|||||||
buttonPanel.getExitButton().addActionListener(this);
|
buttonPanel.getExitButton().addActionListener(this);
|
||||||
|
|
||||||
// Créer la fenêtre des paramètres
|
// Créer la fenêtre des paramètres
|
||||||
this.settingsFrame = new JFrame("Paramètres");
|
this.settingsFrame = settingsFrame;
|
||||||
this.settingsFrame.setLocationRelativeTo(null);
|
this.settingsFrame.setLocationRelativeTo(null);
|
||||||
this.settingsFrame.setVisible(false);
|
this.settingsFrame.setVisible(false);
|
||||||
}
|
}
|
||||||
@@ -89,21 +89,11 @@ public class MainMenuButtonController implements ActionListener {
|
|||||||
// Ajuster la fenêtre des paramètres pour qu'elle ait la même taille et position
|
// Ajuster la fenêtre des paramètres pour qu'elle ait la même taille et position
|
||||||
this.settingsFrame.setSize(mainMenuSize);
|
this.settingsFrame.setSize(mainMenuSize);
|
||||||
this.settingsFrame.setLocation(mainMenuLocation);
|
this.settingsFrame.setLocation(mainMenuLocation);
|
||||||
this.settingsFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
|
||||||
|
|
||||||
// Ajouter l'écouteur pour gérer la fermeture de la fenêtre des paramètres
|
|
||||||
SettingsWindowListener windowListener = new SettingsWindowListener(mainMenu, settingsFrame);
|
|
||||||
this.settingsFrame.addWindowListener(windowListener);
|
|
||||||
|
|
||||||
// Cacher la fenêtre du menu principal
|
// Cacher la fenêtre du menu principal
|
||||||
this.mainMenu.setVisible(false);
|
this.mainMenu.setVisible(false);
|
||||||
|
|
||||||
// Créer et ajouter le panneau des paramètres
|
|
||||||
SettingsPanel settingsPanel = new SettingsPanel(mainMenu, settingsFrame);
|
|
||||||
this.settingsFrame.add(settingsPanel);
|
|
||||||
|
|
||||||
// Afficher la fenêtre des paramètres
|
// Afficher la fenêtre des paramètres
|
||||||
this.settingsFrame.setVisible(true);
|
this.settingsFrame.setVisible(true);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -43,14 +43,14 @@ public class SettingsPanel extends JPanel {
|
|||||||
|
|
||||||
// Musique Panel
|
// Musique Panel
|
||||||
JSlider musicSlider = new JSlider(0, 100, Options.MUSIC_MUTED ? 0 : Options.MUSIC_VOLUME);
|
JSlider musicSlider = new JSlider(0, 100, Options.MUSIC_MUTED ? 0 : Options.MUSIC_VOLUME);
|
||||||
JPanel musicPanel = createSoundPanel("Musique", Options.MUSIC_MUTED, Options.MUSIC_VOLUME, musicSlider, new MusicVolumeChangeListener(musicSlider), new MuteCheckBoxListener("Musique"));
|
JPanel musicPanel = createSoundPanel("Musique", musicSlider, new MusicVolumeChangeListener(musicSlider), new MuteCheckBoxListener("Musique"));
|
||||||
mainPanel.add(musicPanel, createGridBagConstraints(0, 2, 1));
|
mainPanel.add(musicPanel, createGridBagConstraints(0, 2, 1));
|
||||||
|
|
||||||
mainPanel.add(Box.createVerticalStrut(30), createGridBagConstraints(0, 3, 1));
|
mainPanel.add(Box.createVerticalStrut(30), createGridBagConstraints(0, 3, 1));
|
||||||
|
|
||||||
// SFX Panel
|
// SFX Panel
|
||||||
JSlider sfxSlider = new JSlider(0, 100, Options.SOUNDS_MUTED ? 0 : Options.SOUNDS_VOLUME);
|
JSlider sfxSlider = new JSlider(0, 100, Options.SOUNDS_MUTED ? 0 : Options.SOUNDS_VOLUME);
|
||||||
JPanel sfxPanel = createSoundPanel("SFX", Options.SOUNDS_MUTED, Options.SOUNDS_VOLUME, sfxSlider, new SoundsVolumeChangeListener(sfxSlider), new MuteCheckBoxListener("SFX"));
|
JPanel sfxPanel = createSoundPanel("SFX", sfxSlider, new SoundsVolumeChangeListener(sfxSlider), new MuteCheckBoxListener("SFX"));
|
||||||
mainPanel.add(sfxPanel, createGridBagConstraints(0, 4, 1));
|
mainPanel.add(sfxPanel, createGridBagConstraints(0, 4, 1));
|
||||||
|
|
||||||
// Close Button
|
// Close Button
|
||||||
@@ -82,7 +82,7 @@ public class SettingsPanel extends JPanel {
|
|||||||
return gbc;
|
return gbc;
|
||||||
}
|
}
|
||||||
|
|
||||||
private JPanel createSoundPanel(String labelText, boolean isMuted, int initialVolume, JSlider volumeSlider, ChangeListener sliderChangeListener, MuteCheckBoxListener muteCheckBoxListener) {
|
private JPanel createSoundPanel(String labelText, JSlider volumeSlider, ChangeListener sliderChangeListener, MuteCheckBoxListener muteCheckBoxListener) {
|
||||||
JPanel panel = new JPanel(new GridBagLayout());
|
JPanel panel = new JPanel(new GridBagLayout());
|
||||||
panel.setOpaque(false);
|
panel.setOpaque(false);
|
||||||
|
|
||||||
@@ -91,7 +91,7 @@ public class SettingsPanel extends JPanel {
|
|||||||
gbc.gridx = 0;
|
gbc.gridx = 0;
|
||||||
|
|
||||||
JCheckBox muteCheckBox = new JCheckBox();
|
JCheckBox muteCheckBox = new JCheckBox();
|
||||||
muteCheckBox.setSelected(!isMuted);
|
muteCheckBox.setSelected(!("Musique".equals(labelText) ? Options.MUSIC_MUTED : Options.SOUNDS_MUTED));
|
||||||
muteCheckBox.addActionListener(muteCheckBoxListener);
|
muteCheckBox.addActionListener(muteCheckBoxListener);
|
||||||
|
|
||||||
panel.add(new JLabel(labelText), gbc);
|
panel.add(new JLabel(labelText), gbc);
|
||||||
|
@@ -17,8 +17,7 @@ public class MusicVolumeChangeListener implements ChangeListener {
|
|||||||
@Override
|
@Override
|
||||||
public void stateChanged(ChangeEvent e) {
|
public void stateChanged(ChangeEvent e) {
|
||||||
// Récupérer la valeur du slider spécifique
|
// Récupérer la valeur du slider spécifique
|
||||||
int volume = slider.getValue();
|
Options.MUSIC_VOLUME = slider.getValue();
|
||||||
Options.MUSIC_VOLUME = volume; // Mettre à jour le volume dans Options
|
MusicPlayer.setVolume(MusicPlayer.getMusicClip(), Options.MUSIC_VOLUME);
|
||||||
MusicPlayer.setVolume(MusicPlayer.getMusicClip(), volume); // Appliquer la nouvelle valeur du volume à la musique
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user