aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAidan Ross <aross02@fairport.org>2023-06-03 00:01:56 -0400
committerAidan Ross <aross02@fairport.org>2023-06-03 00:01:56 -0400
commit727e5c5efcc48642e2c8b24dcd052bca36e74587 (patch)
treeb4f75865e76e6a1ad3f918ee016316d1fd7b03e7 /src
parent1dc1ebff63298acb0f2859ca514e8ac4a17c5175 (diff)
downloadNPEhero-727e5c5efcc48642e2c8b24dcd052bca36e74587.tar.gz
NPEhero-727e5c5efcc48642e2c8b24dcd052bca36e74587.tar.bz2
NPEhero-727e5c5efcc48642e2c8b24dcd052bca36e74587.zip
SYNCING ISSUES COMPLETELY FIXED and theres not even any workarounds this time it just works also songs now start on beat zero in the notes.txt file
Diffstat (limited to 'src')
-rw-r--r--src/gameplay/SongPlayer.java25
-rw-r--r--src/gameplay/Timer.java4
-rw-r--r--src/gui/Driver.java17
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