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.utils.MusicPlayer;
|
||||
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
|
||||
@@ -19,10 +23,23 @@ public class Main {
|
||||
* @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");
|
||||
|
||||
// Menu principal
|
||||
MusicPlayer.loadMusic(Musics.MAIN_MENU_MUSIC);
|
||||
MusicPlayer.playMusic();
|
||||
MainMenu mainMenu = new 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;
|
||||
|
||||
public MainMenuButtonController(MainMenu mainMenu) {
|
||||
public MainMenuButtonController(MainMenu mainMenu, JFrame settingsFrame) {
|
||||
this.mainMenu = mainMenu;
|
||||
// Ajouter les écouteurs d'événements sur les boutons
|
||||
ButtonPanel buttonPanel = mainMenu.getButtonPanel();
|
||||
@@ -31,7 +31,7 @@ public class MainMenuButtonController implements ActionListener {
|
||||
buttonPanel.getExitButton().addActionListener(this);
|
||||
|
||||
// Créer la fenêtre des paramètres
|
||||
this.settingsFrame = new JFrame("Paramètres");
|
||||
this.settingsFrame = settingsFrame;
|
||||
this.settingsFrame.setLocationRelativeTo(null);
|
||||
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
|
||||
this.settingsFrame.setSize(mainMenuSize);
|
||||
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
|
||||
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
|
||||
this.settingsFrame.setVisible(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@@ -43,14 +43,14 @@ public class SettingsPanel extends JPanel {
|
||||
|
||||
// Musique Panel
|
||||
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(Box.createVerticalStrut(30), createGridBagConstraints(0, 3, 1));
|
||||
|
||||
// SFX Panel
|
||||
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));
|
||||
|
||||
// Close Button
|
||||
@@ -82,7 +82,7 @@ public class SettingsPanel extends JPanel {
|
||||
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());
|
||||
panel.setOpaque(false);
|
||||
|
||||
@@ -91,7 +91,7 @@ public class SettingsPanel extends JPanel {
|
||||
gbc.gridx = 0;
|
||||
|
||||
JCheckBox muteCheckBox = new JCheckBox();
|
||||
muteCheckBox.setSelected(!isMuted);
|
||||
muteCheckBox.setSelected(!("Musique".equals(labelText) ? Options.MUSIC_MUTED : Options.SOUNDS_MUTED));
|
||||
muteCheckBox.addActionListener(muteCheckBoxListener);
|
||||
|
||||
panel.add(new JLabel(labelText), gbc);
|
||||
|
@@ -17,8 +17,7 @@ public class MusicVolumeChangeListener implements ChangeListener {
|
||||
@Override
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
// Récupérer la valeur du slider spécifique
|
||||
int volume = slider.getValue();
|
||||
Options.MUSIC_VOLUME = volume; // Mettre à jour le volume dans Options
|
||||
MusicPlayer.setVolume(MusicPlayer.getMusicClip(), volume); // Appliquer la nouvelle valeur du volume à la musique
|
||||
Options.MUSIC_VOLUME = slider.getValue();
|
||||
MusicPlayer.setVolume(MusicPlayer.getMusicClip(), Options.MUSIC_VOLUME);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user