diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java index 24ac1a5eae0fcd96ed36d118539c1fd6aaa1ae16..91d0eb6d1d299affc71811e806b8c9668e3a0cbb 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java @@ -30,7 +30,7 @@ public class MainMenuController implements Initializable { switchScene("Statistics"); } - public void optionsScene() { + public void settingsScene() { switchScene("Options"); } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/OptionsController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java similarity index 62% rename from src/main/java/de/hdm_stuttgart/battlearena/Controller/OptionsController.java rename to src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java index c7f55e22f971315590eb6423c0d362c65b14b195..fb1ab4be997cb6a398ee47ca51190eae9a017f0f 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/OptionsController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java @@ -11,13 +11,13 @@ import java.net.URL; import java.util.Objects; import java.util.ResourceBundle; -public class OptionsController implements Initializable { +public class SettingsController implements Initializable { @FXML private VBox parent; @FXML - private Slider volumeSlider; + private Slider musicVolume, sfxVolume; SceneLoader sceneLoader = new SceneLoader(); - public double volume; + public double music; MusicPlayerSingleton musicPlayer = MusicPlayerSingleton.getInstance(); public void creditScene() throws IOException { @@ -32,15 +32,21 @@ public class OptionsController implements Initializable { @Override public void initialize(URL url, ResourceBundle resourceBundle) { - setVolume(); + setMusicVolume(); } - private void setVolume() { + private void setMusicVolume() { // need a runtime database to save volume - volumeSlider.valueProperty().addListener((observableValue, oldValue, newValue) -> { - volume = newValue.doubleValue() / 100; - musicPlayer.getMediaPlayer().setVolume(volume); - System.out.println(volume); + musicVolume.valueProperty().addListener((observableValue, oldValue, newValue) -> { + setMusic(musicVolume); + System.out.println(music); }); } + + private void setMusic(Slider slider) { + slider.valueProperty().addListener(((observableValue, oldValue, newValue) -> { + music = newValue.doubleValue() / 100; + musicPlayer.getMediaPlayer().setVolume(music); + })); + } } diff --git a/src/main/resources/fxml/MainMenu.fxml b/src/main/resources/fxml/MainMenu.fxml index 385eeb92c0ed4cce0d84e17363a2007d4a6c648b..14ea4b313de7d50e1619e9384a33d8c10ff8af37 100644 --- a/src/main/resources/fxml/MainMenu.fxml +++ b/src/main/resources/fxml/MainMenu.fxml @@ -17,7 +17,7 @@ </Button> <Button mnemonicParsing="false" text="Map Creator" VBox.vgrow="ALWAYS" /> <Button mnemonicParsing="false" onAction="#statisticsScene" text="Statistics" VBox.vgrow="ALWAYS" /> - <Button mnemonicParsing="false" onAction="#optionsScene" text="Options" /> + <Button mnemonicParsing="false" onAction="#settingsScene" text="Settings" /> <Button fx:id="exitButton" alignment="CENTER" mnemonicParsing="false" onAction="#exit" text="Exit" /> <Pane VBox.vgrow="ALWAYS" /> <Pane layoutX="10.0" layoutY="395.0" VBox.vgrow="ALWAYS" /> diff --git a/src/main/resources/fxml/Options.fxml b/src/main/resources/fxml/Options.fxml deleted file mode 100644 index 79f14cd61fc942bff138bc3a22443bdf8f9ef2a0..0000000000000000000000000000000000000000 --- a/src/main/resources/fxml/Options.fxml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<?import javafx.scene.control.Button?> -<?import javafx.scene.control.Slider?> -<?import javafx.scene.layout.HBox?> -<?import javafx.scene.layout.VBox?> -<?import javafx.scene.text.Text?> - - -<VBox fx:id="parent" alignment="CENTER" prefHeight="400.0" prefWidth="600.0" spacing="20.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.OptionsController"> - <children> - <HBox alignment="CENTER"> - <children> - <VBox alignment="TOP_CENTER" spacing="10.0"> - <children> - <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Volume:" /> - <Slider fx:id="volumeSlider" blockIncrement="25.0" majorTickUnit="100.0" minorTickCount="1" prefHeight="14.0" prefWidth="480.0" showTickLabels="true" value="75.0" VBox.vgrow="NEVER" /> - </children> - </VBox> - </children> - </HBox> - <Button mnemonicParsing="false" onAction="#creditScene" text="Credits" /> - <Button mnemonicParsing="false" onAction="#mainMenuScene" text="Back" /> - </children> -</VBox> diff --git a/src/main/resources/fxml/Settings.fxml b/src/main/resources/fxml/Settings.fxml new file mode 100644 index 0000000000000000000000000000000000000000..83c4b187df0184dcba9fa2991170c39ee2721bc7 --- /dev/null +++ b/src/main/resources/fxml/Settings.fxml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.Slider?> +<?import javafx.scene.layout.HBox?> +<?import javafx.scene.layout.VBox?> +<?import javafx.scene.text.Text?> + +<VBox fx:id="parent" alignment="CENTER" prefHeight="400.0" prefWidth="600.0" spacing="20.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.SettingsController"> + <children> + <HBox alignment="CENTER"> + <children> + <VBox alignment="TOP_CENTER" spacing="10.0"> + <children> + <VBox alignment="CENTER" VBox.vgrow="ALWAYS"> + <children> + <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Music volume:" /> + <Slider fx:id="musicVolume" blockIncrement="25.0" majorTickUnit="100.0" minorTickCount="1" prefHeight="14.0" prefWidth="480.0" showTickLabels="true" value="75.0" VBox.vgrow="NEVER" /> + </children> + </VBox> + <VBox alignment="CENTER" VBox.vgrow="ALWAYS"> + <children> + <Text strokeType="OUTSIDE" strokeWidth="0.0" text="SFX volume:" /> + <Slider fx:id="sfxVolume" blockIncrement="25.0" majorTickUnit="100.0" minorTickCount="1" prefHeight="14.0" prefWidth="480.0" showTickLabels="true" value="75.0" /> + </children> + </VBox> + </children> + </VBox> + </children> + </HBox> + <Button mnemonicParsing="false" onAction="#creditScene" text="Credits" /> + <Button mnemonicParsing="false" onAction="#mainMenuScene" text="Back" /> + </children> +</VBox>