diff --git a/src/ihm/EffetSonore.java b/src/ihm/EffetSonore.java index 27ad81c..b4bb5f2 100644 --- a/src/ihm/EffetSonore.java +++ b/src/ihm/EffetSonore.java @@ -6,29 +6,36 @@ import java.io.InputStream; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; +import javax.sound.sampled.FloatControl; public class EffetSonore { - - static boolean soundOK; - - public InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav"); - public InputStream fileSound2 = getClass().getResourceAsStream("/ihm/ressources/musique/BeepError.wav"); - + + static boolean soundOK; + + public InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav"); + public InputStream fileSound2 = getClass().getResourceAsStream("/ihm/ressources/musique/BeepError.wav"); + public static FloatControl volumeEffet; + public static float lvVolumeEffet; + public static void playSoundEffect(InputStream path) { - + if (soundOK == true) { - + try { InputStream soundPath = path; - if (soundPath!=null) { + if (soundPath != null) { InputStream bufferedIn = new BufferedInputStream(soundPath); - + AudioInputStream audioInput = AudioSystem.getAudioInputStream(bufferedIn); Clip clipSound = AudioSystem.getClip(); clipSound.open(audioInput); + + volumeEffet = (FloatControl) clipSound.getControl(FloatControl.Type.MASTER_GAIN); + volumeEffet.setValue(lvVolumeEffet); + clipSound.start(); } else { @@ -40,7 +47,6 @@ public class EffetSonore { } } - } public static boolean isSoundOK() { @@ -51,10 +57,8 @@ public class EffetSonore { EffetSonore.soundOK = soundOK; } - - - - - + public static void setVolumeEffets(double dValeur) { + lvVolumeEffet = (float) (dValeur); + } } diff --git a/src/ihm/controller/MenuController.java b/src/ihm/controller/MenuController.java index a76cd25..5e2685d 100644 --- a/src/ihm/controller/MenuController.java +++ b/src/ihm/controller/MenuController.java @@ -42,7 +42,7 @@ public class MenuController implements Initializable{ System.out.println("Passage à l'écran de choix des joueurs"); final URL fxmlURL = getClass().getResource("/ihm/ressources/Choix_joueur.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); AnchorPane pane = fxmlLoader.load(); Scene scene = new Scene(pane); @@ -60,7 +60,7 @@ public class MenuController implements Initializable{ System.out.println("Passage à l'écran des paramètres"); final URL fxmlURL = getClass().getResource("/ihm/ressources/parametre.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); Pane pane = fxmlLoader.load(); @@ -82,7 +82,7 @@ public class MenuController implements Initializable{ EffetSonore.playSoundEffect(fileSound1); System.out.println("Passage à l'écran des règles"); final URL fxmlURL = getClass().getResource("/ihm/ressources/Regles.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); AnchorPane pane = fxmlLoader.load(); Scene scene = new Scene(pane); diff --git a/src/ihm/controller/ParametreController.java b/src/ihm/controller/ParametreController.java index 52ac4ab..6ddaf64 100644 --- a/src/ihm/controller/ParametreController.java +++ b/src/ihm/controller/ParametreController.java @@ -31,20 +31,23 @@ public class ParametreController implements Initializable { private ComboBox langues; @FXML private Slider sliderMusique; + @FXML + private Slider sliderEffets; - - + public static Locale LaLangue = Locale.FRANCE; public static boolean cbMusiqueCoche = false; // verifi si la checbox musical est coche public static boolean cbSonCoche = false; public static boolean cbClair = false; public static double slideValue; + public static double slideValueEffets; public static String langueChoisi; - boolean MusiqueLancee = false; //verifi si la musique a déja été lancé une première fois - - String filepathMusique = "/ihm/ressources/musique/The_Red_Fox_Tavern.wav"; // lien vers la musique : https://www.youtube.com/watch?v=LBpKUIyOHdo - InputStream fileMusique = getClass().getResourceAsStream("/ihm/ressources/musique/The_Red_Fox_Tavern.wav"); + boolean MusiqueLancee = false; // verifi si la musique a déja été lancé une première fois + + String filepathMusique = "/ihm/ressources/musique/The_Red_Fox_Tavern.wav"; // lien vers la musique : + // https://www.youtube.com/watch?v=LBpKUIyOHdo + InputStream fileMusique = getClass().getResourceAsStream("/ihm/ressources/musique/The_Red_Fox_Tavern.wav"); File repertoire = new File("src//ihm//ressources"); File repertoire2; @@ -57,7 +60,9 @@ public class ParametreController implements Initializable { cbEffetSonore.setSelected(cbSonCoche); clair.setSelected(cbClair); sliderMusique.setValue(slideValue); - + sliderEffets.setValue(slideValueEffets); + + System.out.println("slidevalueeffet init = "+ slideValueEffets); langues.getItems().add("Anglais"); langues.getItems().add("Allemand"); @@ -68,125 +73,123 @@ public class ParametreController implements Initializable { @FXML public void enregistre(MouseEvent mouseEvent) throws IOException, Exception { + + InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav"); - InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav"); - //Pour la musique - if (fileMusique!=null) { + if(langues.getValue()=="Anglais") { + LaLangue=Locale.ENGLISH; + } + else if(langues.getValue()=="Français") { + LaLangue=Locale.FRANCE; + } + // Pour la musique + if (fileMusique != null) { if (cmusique.isSelected() == true) { cbMusiqueCoche = true; - if (Musique.clipTimePosition == 0 && MusiqueLancee == false && Musique.musiqueEnCours != true) { // si la musique n'a jamais été lancé + if (Musique.clipTimePosition == 0 && MusiqueLancee == false && Musique.musiqueEnCours != true) { //si la musique n'a jamais été lancé Musique.playMusique(fileMusique); Musique.musiqueEnCours = true; MusiqueLancee = true; } else if (Musique.musiqueEnCours != true) { Musique.resumeMusique(Musique.clip); // si elle a deja été lancé mais mis en pause, reprend a partir du point d'arret - Musique.musiqueEnCours = true; + Musique.musiqueEnCours = true; } } else { if (cbMusiqueCoche == true) { cbMusiqueCoche = false; - Musique.pauseMusique(Musique.clip); //met en pause la musique + Musique.pauseMusique(Musique.clip); // met en pause la musique Musique.musiqueEnCours = false; } } } - - //Pour les effets sonores + + // Pour les effets sonores if (cbEffetSonore.isSelected() == true) { EffetSonore.setSoundOK(true); cbSonCoche = true; - + System.out.println(EffetSonore.isSoundOK()); } - + else { EffetSonore.setSoundOK(false); cbSonCoche = false; System.out.println(EffetSonore.isSoundOK()); } - - - // Pour la couleur du theme + + if (clair.isSelected()) { + // Pane root = + // FXMLLoader.load(getClass().getResource("../ressources/menu.fxml")); + + rootPane.setStyle("-fx-background-color: white;"); + rootPane.applyCss(); + } + rootPane.setStyle("-fx-background-color: white;"); + rootPane.applyCss(); + /* + * if (liste != null) { for (int i = 0; i < liste.length; i++) { + * + * System.out.println(liste[i]); System.out.println(i); repertoire2 = new + * File("../ressources/" + liste[i]); + * + * if (repertoire.isDirectory() == false) { if (liste[i] == "Plateau.fxml") { + * Pane root1 = FXMLLoader.load(getClass().getResource("../ressources/" + + * liste[i])); root1.setStyle("../ressources/style/plateau.css"); + * + * } Pane root1 = FXMLLoader.load(getClass().getResource("../ressources/" + + * liste[i])); root1.setStyle("../ressources/style/menuLight.css"); } } + * + * } + * + * } + */ + + EffetSonore.playSoundEffect(fileSound1); // emet un bruit sur le bouton si les effets sonores sont activés - - if (clair.isSelected()) { - //Pane root = FXMLLoader.load(getClass().getResource("../ressources/menu.fxml")); - - rootPane.setStyle("-fx-background-color: white;"); - rootPane.applyCss(); - } - rootPane.setStyle("-fx-background-color: white;"); - rootPane.applyCss(); - /*if (liste != null) { - for (int i = 0; i < liste.length; i++) { + System.out.println("slidevalueeffet enregistre = "+ slideValueEffets); - System.out.println(liste[i]); - System.out.println(i); - repertoire2 = new File("../ressources/" + liste[i]); + // Quitter les paramètres + final URL fxmlURL = getClass().getResource("/ihm/ressources/Menu.fxml"); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); - if (repertoire.isDirectory() == false) { - if (liste[i] == "Plateau.fxml") { - Pane root1 = FXMLLoader.load(getClass().getResource("../ressources/" + liste[i])); - root1.setStyle("../ressources/style/plateau.css"); - - } - Pane root1 = FXMLLoader.load(getClass().getResource("../ressources/" + liste[i])); - root1.setStyle("../ressources/style/menuLight.css"); - } - } - - } - - }*/ - - EffetSonore.playSoundEffect(fileSound1); //emet un bruit sur le bouton si les effets sonores sont activés - - - // Quitter les paramètres - final URL fxmlURL = getClass().getResource("/ihm/ressources/Menu.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); - final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); Pane pane = fxmlLoader.load(); - rootPane.getChildren().setAll(pane); - - + rootPane.getChildren().setAll(pane); } - + @FXML - public void slideVolumeMusique(MouseEvent mouseEvent) throws IOException{ - - if(Musique.musiqueEnCours == true) { + public void slideVolumeMusique(MouseEvent mouseEvent) throws IOException { + + if (Musique.musiqueEnCours == true) { Musique.setVolume(sliderMusique.getValue()); slideValue = sliderMusique.getValue(); - - } - /* - - @FXML - public void monterVolume(MouseEvent mouseEvent) throws IOException{ - Musique.volumeUp(5.f); - System.out.println("on monte le son"); - } - - @FXML - public void baisserVolume(MouseEvent mouseEvent) throws IOException{ - Musique.volumeDown(5.f); - System.out.println("on baisse le son"); - } - */ - - + } } + public void slideVolumeEffet(MouseEvent mouseEvent) throws IOException { + + EffetSonore.setVolumeEffets(sliderEffets.getValue()); + slideValueEffets = sliderEffets.getValue(); + + } + + /* + * + * @FXML public void monterVolume(MouseEvent mouseEvent) throws IOException{ + * Musique.volumeUp(5.f); System.out.println("on monte le son"); } + * + * @FXML public void baisserVolume(MouseEvent mouseEvent) throws IOException{ + * Musique.volumeDown(5.f); System.out.println("on baisse le son"); } + */ + } diff --git a/src/ihm/controller/PauseController.java b/src/ihm/controller/PauseController.java index 6d7fc2a..982d90d 100644 --- a/src/ihm/controller/PauseController.java +++ b/src/ihm/controller/PauseController.java @@ -26,13 +26,16 @@ public class PauseController implements Initializable { private CheckBox cbEffet; @FXML private Slider sliderMusiquePause; + @FXML + private Slider sliderEffetsPause; String filepathMusique = "src//ihm//ressources//musique//The_Red_Fox_Tavern.wav"; InputStream fileMusique = getClass().getResourceAsStream("/ihm/ressources/musique/The_Red_Fox_Tavern.wav"); boolean MusiqueLancee = ParametreController.cbMusiqueCoche; boolean SonLance = ParametreController.cbSonCoche; - public static double slideValuePause; + public static double slideValueMusiquePause; + public static double slideValueEffetPause; @Override public void initialize(URL arg0, ResourceBundle arg1) { @@ -40,6 +43,7 @@ public class PauseController implements Initializable { cbMusique.setSelected(ParametreController.cbMusiqueCoche); cbEffet.setSelected(ParametreController.cbSonCoche); sliderMusiquePause.setValue(ParametreController.slideValue); + sliderEffetsPause.setValue(ParametreController.slideValueEffets); } @FXML @@ -83,7 +87,8 @@ public class PauseController implements Initializable { ParametreController.cbSonCoche = cbEffet.isSelected(); ParametreController.cbMusiqueCoche = cbMusique.isSelected(); - ParametreController.slideValue = slideValuePause; + ParametreController.slideValue = slideValueMusiquePause; + ParametreController.slideValueEffets = slideValueEffetPause; EffetSonore.playSoundEffect(fileSound1); // met un bruit sur le bouton si les effets sonores sont activés @@ -122,12 +127,21 @@ public class PauseController implements Initializable { if (Musique.musiqueEnCours == true) { System.out.println("slide"); Musique.setVolume(sliderMusiquePause.getValue()); - slideValuePause = sliderMusiquePause.getValue(); + slideValueMusiquePause = sliderMusiquePause.getValue(); }else { - System.out.println("probleme"); + System.out.println("probleme de slider musique"); } } + + @FXML + public void slideVolumeEffets(MouseEvent mouseEvent) throws IOException { + + System.out.println("slide effet"); + EffetSonore.setVolumeEffets(sliderEffetsPause.getValue()); + slideValueEffetPause = sliderEffetsPause.getValue(); + + } /* @FXML diff --git a/src/ihm/ressources/Pause.fxml b/src/ihm/ressources/Pause.fxml index 656c8af..7a05ee3 100644 --- a/src/ihm/ressources/Pause.fxml +++ b/src/ihm/ressources/Pause.fxml @@ -48,7 +48,7 @@ - + @@ -64,6 +64,11 @@ + + + + +