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 bf3d708f12b4892aadc799006883cc0952a66b7c..f3aecbf12ec8faa1ff6c2c251d43b74b2fb8d44b 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java @@ -20,38 +20,55 @@ import java.util.ResourceBundle; public class IntroController implements Initializable { @FXML - public MediaView introMediaView; + public MediaView mediaView; @FXML public BorderPane introParent; + private final String fileName = "src/main/resources/textures/videos/"; +// nextVideo() will iterate through this array so the next video will be played TODO: change the videos to non memes lmao + private final String[] videos = {"sony.mp4", "gamecube.mp4", "gameboy.mp4", "monke.mp4"}; + private File file = new File(fileName + videos[0]); + private int counter = 0; + private MediaPlayer mediaPlayer; @Override public void initialize(URL url, ResourceBundle resourceBundle) { introParent.setStyle("-fx-background-color: black;"); - File file = new File("src/main/resources/textures/videos/pepe.mp4"); + createMediaPlayer(); + } + + private void createMediaPlayer() { Media media = new Media(file.toURI().toString()); - MediaPlayer mediaPlayer = new MediaPlayer(media); - introMediaView.setMediaPlayer(mediaPlayer); + mediaPlayer = new MediaPlayer(media); + mediaView.setMediaPlayer(mediaPlayer); // resizing once the scenes has been loaded to get width and height property mediaPlayer.setOnReady(() -> { - introMediaView.fitWidthProperty().bind(introParent.getScene().widthProperty()); - introMediaView.fitHeightProperty().bind(introParent.getScene().heightProperty()); + mediaView.fitWidthProperty().bind(introParent.getScene().widthProperty()); + mediaView.fitHeightProperty().bind(introParent.getScene().heightProperty()); }); - - mediaPlayer.setVolume(1); mediaPlayer.setAutoPlay(true); + mediaPlayer.setOnEndOfMedia(() -> { + if (counter == videos.length - 1) { + videoEnd(); + } else { + nextVideo(); + } + }); // TODO: make any button pressed work introParent.setOnMouseClicked((mouseEvent) -> { - mediaPlayer.dispose(); - videoEnd(); + if (counter == videos.length - 1) { + videoEnd(); + } else { + nextVideo(); + } }); - mediaPlayer.setOnEndOfMedia(this::videoEnd); } - // TODO: maybe look into using SceneLoader class +// TODO: maybe look into using SceneLoader class private void videoEnd() { try { + mediaPlayer.dispose(); Parent root = FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/MenuBorderPane.fxml"))); Stage stage = (Stage) introParent.getScene().getWindow(); Scene scene = new Scene(root); @@ -61,4 +78,11 @@ public class IntroController implements Initializable { throw new RuntimeException(); } } + + private void nextVideo() { + mediaPlayer.dispose(); + file = new File(fileName + videos[counter + 1]); + counter++; + createMediaPlayer(); + } } diff --git a/src/main/resources/fxml/Intro.fxml b/src/main/resources/fxml/Intro.fxml index 19c2296ff80ed40c2a26abc7c9799d31d1178559..fb0cfbc611000de77a25e8fd74afdaeb358e7c82 100644 --- a/src/main/resources/fxml/Intro.fxml +++ b/src/main/resources/fxml/Intro.fxml @@ -3,9 +3,8 @@ <?import javafx.scene.layout.BorderPane?> <?import javafx.scene.media.MediaView?> - <BorderPane fx:id="introParent" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.IntroController"> <center> - <MediaView fx:id="introMediaView" fitHeight="200.0" fitWidth="200.0" BorderPane.alignment="CENTER" /> + <MediaView fx:id="mediaView" fitHeight="200.0" fitWidth="200.0" BorderPane.alignment="CENTER" /> </center> </BorderPane> diff --git a/src/main/resources/textures/videos/gameboy.mp4 b/src/main/resources/textures/videos/gameboy.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..91a1eaa78366adbb3686a07594417fd9c8832126 Binary files /dev/null and b/src/main/resources/textures/videos/gameboy.mp4 differ diff --git a/src/main/resources/textures/videos/gamecube.mp4 b/src/main/resources/textures/videos/gamecube.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..135416e7b63fc25ed1e3e2b744c6d14a78692b99 Binary files /dev/null and b/src/main/resources/textures/videos/gamecube.mp4 differ diff --git a/src/main/resources/textures/videos/sony.mp4 b/src/main/resources/textures/videos/sony.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..9d96aebfc39a033d379d613070c97e6122f8a175 Binary files /dev/null and b/src/main/resources/textures/videos/sony.mp4 differ