diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gameplay/SongPlayer.java | 25 | ||||
-rw-r--r-- | src/gameplay/Timer.java | 4 | ||||
-rw-r--r-- | src/gui/Driver.java | 17 |
3 files changed, 26 insertions, 20 deletions
diff --git a/src/gameplay/SongPlayer.java b/src/gameplay/SongPlayer.java index 9010228..983ba9c 100644 --- a/src/gameplay/SongPlayer.java +++ b/src/gameplay/SongPlayer.java @@ -3,6 +3,7 @@ package gameplay; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; @@ -18,6 +19,9 @@ import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; import javafx.scene.layout.VBox; +import javafx.scene.media.Media; +import javafx.scene.media.MediaPlayer; +import javafx.scene.media.MediaView; import javafx.scene.paint.Color; import javafx.animation.*; import javafx.util.*; @@ -110,13 +114,11 @@ public class SongPlayer extends Pane { } public SongPlayer(main.Level lvl, Difficulty d, Pane p, ScoreController cntrl) { - try { - gui.Driver.mediaPlayer.stop(); - } catch (UnsupportedAudioFileException | IOException | LineUnavailableException e) { - e.printStackTrace(); - } - gui.Driver.mediaPlayer = new AudioFilePlayer(lvl.song.getPath()); - gui.Driver.mediaPlayer.play(); + gui.Driver.mediaPlayer.stop(); + Media song = new Media(Paths.get(lvl.song.getPath()).toUri().toString()); + gui.Driver.mediaPlayer = new MediaPlayer(song); + new MediaView(gui.Driver.mediaPlayer); + bpm = d.bpm; //Reads the song's bpm from a metadata file level = lvl; @@ -196,7 +198,7 @@ public class SongPlayer extends Pane { * @param c the color of the sent note */ public void sendNote(Queue<NoteInfo> sends, ArrayList<Block> lane, TButton button) { - if (sends.peek() != null && timer.time() > sends.peek().getTime()-(TIME*bpm/60000)) { + if (sends.peek() != null && timer.time() > sends.peek().getTime()-(1000*(bpm/60000.0))) { TranslateTransition anim = new TranslateTransition(Duration.millis(TIME+70)); lane.add(new Block(button.getColor(), 50, 50, 5)); @@ -260,6 +262,9 @@ public class SongPlayer extends Pane { e.printStackTrace(); } } + if (timer.time() > 0.0) { + gui.Driver.mediaPlayer.play(); + } } }; @@ -278,7 +283,9 @@ public class SongPlayer extends Pane { public void cancel() throws UnsupportedAudioFileException, IOException, LineUnavailableException { gameLoop.stop(); gui.Driver.mediaPlayer.stop(); - gui.Driver.mediaPlayer = new AudioFilePlayer("src/assets/MenuMusicPlaceholder.wav"); + Media song = new Media(Paths.get("src/assets/MenuMusicPlaceholder.wav").toUri().toString()); + gui.Driver.mediaPlayer = new MediaPlayer(song); + new MediaView(gui.Driver.mediaPlayer); gui.Driver.mediaPlayer.play(); } diff --git a/src/gameplay/Timer.java b/src/gameplay/Timer.java index e43ad19..bf07683 100644 --- a/src/gameplay/Timer.java +++ b/src/gameplay/Timer.java @@ -19,10 +19,10 @@ public class Timer } public double time() { - return ((double)(System.currentTimeMillis()-timeStart)-1000)*(bpm/60000.0); + return ((double)(System.currentTimeMillis()-timeStart)-2000)*(bpm/60000.0); } public String toString() { - return ""+((double)(System.currentTimeMillis()-timeStart)-1000)*(bpm/60000.0); + return ""+((double)(System.currentTimeMillis()-timeStart)-2000)*(bpm/60000.0); } } diff --git a/src/gui/Driver.java b/src/gui/Driver.java index 162d1fe..39cda73 100644 --- a/src/gui/Driver.java +++ b/src/gui/Driver.java @@ -22,6 +22,8 @@ import main.LevelController; import main.SettingsController; import sound.AudioFilePlayer; +import java.nio.file.Paths; + import javax.sound.sampled.AudioFileFormat; // import javafx.scene.image.ImageView; @@ -37,8 +39,8 @@ import gameplay.SongPlayer; public class Driver extends Application { - gameplay.SongPlayer placeHolder = new gameplay.SongPlayer(); - public static AudioFilePlayer mediaPlayer; + + public static MediaPlayer mediaPlayer; public static Stage primaryStage; static Pane primaryPane = new Pane(); @@ -62,7 +64,9 @@ public class Driver extends Application @Override public void start(Stage newPrimaryStage) { - mediaPlayer = new AudioFilePlayer("src/assets/MenuMusicPlaceholder.wav"); + Media song = new Media(Paths.get("src/assets/MenuMusicPlaceholder.wav").toUri().toString()); + mediaPlayer = new MediaPlayer(song); + new MediaView(mediaPlayer); mediaPlayer.play(); primaryStage = newPrimaryStage; @@ -73,7 +77,7 @@ public class Driver extends Application primaryStage.setScene(primaryScene); primaryStage.setTitle("NPE Hero"); - fixMenuSync(); + setMenu(new MainMenu()); setBackground("assets/forest.png"); @@ -87,11 +91,6 @@ public class Driver extends Application primaryStage.show(); } - private void fixMenuSync() { - primaryPane.getChildren().addAll(placeHolder); - primaryPane.getChildren().removeAll(placeHolder); - } - /** * Replaces/adds a new pane to the primaryPane * @param pane the new pane |