diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreditsController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreditsController.java index f27a734fdda4aedfbb78ecf8f2be7796b7ee4935..93b482e76204c18fa0ec2fb4b41e672130078db3 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreditsController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreditsController.java @@ -23,6 +23,7 @@ public class CreditsController implements Initializable { public void initialize(URL url, ResourceBundle resourceBundle) { parent.setStyle("-fx-background-color: black;"); createMediaPlayer(); + MusicPlayerSingleton.getInstance().getMediaPlayer().dispose(); } private void createMediaPlayer() { diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java index 4ea729c9560a352eeab8550fb597361ef34a6070..2546ac2824806c70eb544f1a6d384e415ee4e50a 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java @@ -4,12 +4,9 @@ import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Cursor; -import javafx.scene.Parent; -import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import javafx.scene.media.MediaPlayer; import javafx.scene.media.MediaView; -import javafx.stage.Stage; import java.io.File; import java.io.IOException; 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 dc0cc7f4fa874689ba4d25ce335c86b0b3463d0b..5a8c9dea297cc86f74b13911c31a9318d66f6178 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java @@ -2,7 +2,6 @@ package de.hdm_stuttgart.battlearena.Controller; import javafx.fxml.FXML; import javafx.scene.control.Button; -import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; import javafx.stage.Stage; @@ -35,5 +34,5 @@ public class MainMenuController { } -// TODO: create skin selectiion scene +// TODO: create skin selection scene } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java index d8e18dc72be76b13908d1b67731ac48cef26a1d7..a1d4137c750eb46110c1c1a020b7fb09aae8923e 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java @@ -6,13 +6,16 @@ import javafx.geometry.Rectangle2D; import javafx.scene.control.Button; import javafx.scene.image.ImageView; import javafx.scene.layout.BorderPane; +import javafx.scene.media.Media; +import javafx.scene.media.MediaPlayer; import javafx.stage.Screen; +import java.io.File; import java.net.URL; import java.util.ResourceBundle; public class MenuBorderPaneController implements Initializable { -// TODO: change FXML variables to private. Don't know why it's not working when they're private + // TODO: change FXML variables to private. Don't know why it's not working when they're private @FXML public BorderPane parent; @FXML @@ -21,6 +24,8 @@ public class MenuBorderPaneController implements Initializable { public ImageView imgLeft, imgRight; private int counter = 0; private final SceneLoader sceneLoader = new SceneLoader(); + MediaPlayer musicPlayer; + @Override public void initialize(URL url, ResourceBundle resourceBundle) { parent.setCenter(sceneLoader.loadScene("MainMenu")); @@ -31,6 +36,7 @@ public class MenuBorderPaneController implements Initializable { imgRight.setPreserveRatio(true); imgLeft.setFitWidth(imageWidth); imgLeft.setPreserveRatio(true); + backgroundMusic(); } public void easterEgg() { @@ -40,4 +46,12 @@ public class MenuBorderPaneController implements Initializable { System.out.println("monke"); } } + + private void backgroundMusic() { + Media media = new Media(new File("src/main/resources/sound/music/cocBackgroundMusicTest.mp3").toURI().toString()); + musicPlayer = new MediaPlayer(media); + musicPlayer.setCycleCount(MediaPlayer.INDEFINITE); + musicPlayer.play(); + MusicPlayerSingleton.getInstance().setMediaPlayer(musicPlayer); + } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MusicPlayerSingleton.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MusicPlayerSingleton.java new file mode 100644 index 0000000000000000000000000000000000000000..07c29f1027d9f636c6fe366483d9744d1c700c0c --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MusicPlayerSingleton.java @@ -0,0 +1,22 @@ +package de.hdm_stuttgart.battlearena.Controller; +import javafx.scene.media.MediaPlayer; + +public class MusicPlayerSingleton { + private static final MusicPlayerSingleton instance = new MusicPlayerSingleton(); + private MediaPlayer mediaPlayer; + + private MusicPlayerSingleton() {} + + public static MusicPlayerSingleton getInstance() { + return instance; + } + + public MediaPlayer getMediaPlayer() { + return mediaPlayer; + } + + public void setMediaPlayer(MediaPlayer mediaPlayer) { + this.mediaPlayer = mediaPlayer; + } +} + diff --git a/src/main/resources/sound/music/cocBackgroundMusicTest.mp3 b/src/main/resources/sound/music/cocBackgroundMusicTest.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e916ecb6c0b6487e9bcb8ca6c3d54f6259eac9dc Binary files /dev/null and b/src/main/resources/sound/music/cocBackgroundMusicTest.mp3 differ