aboutsummaryrefslogtreecommitdiff
path: root/src/gameplay
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/gameplay
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/gameplay')
-rw-r--r--src/gameplay/SongPlayer.java25
-rw-r--r--src/gameplay/Timer.java4
2 files changed, 18 insertions, 11 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);
}
}