aboutsummaryrefslogtreecommitdiff
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
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
-rw-r--r--levels/testLevel2/easy/leaderboard.json2
-rw-r--r--levels/testLevel2/easy/metadata.json2
-rw-r--r--levels/testLevel2/easy/notes.txt26
-rw-r--r--src/gameplay/SongPlayer.java25
-rw-r--r--src/gameplay/Timer.java4
-rw-r--r--src/gui/Driver.java17
6 files changed, 54 insertions, 22 deletions
diff --git a/levels/testLevel2/easy/leaderboard.json b/levels/testLevel2/easy/leaderboard.json
index 0637a08..3daf19a 100644
--- a/levels/testLevel2/easy/leaderboard.json
+++ b/levels/testLevel2/easy/leaderboard.json
@@ -1 +1 @@
-[] \ No newline at end of file
+[{"date":"2023-06-02","score":17900,"name":"zbone"}] \ No newline at end of file
diff --git a/levels/testLevel2/easy/metadata.json b/levels/testLevel2/easy/metadata.json
index 2d3f754..c76ea5b 100644
--- a/levels/testLevel2/easy/metadata.json
+++ b/levels/testLevel2/easy/metadata.json
@@ -1 +1 @@
-{"numBeats":0,"title":"Easy","bpm":0} \ No newline at end of file
+{"numBeats":28,"title":"Easy","bpm":85.0} \ No newline at end of file
diff --git a/levels/testLevel2/easy/notes.txt b/levels/testLevel2/easy/notes.txt
index e69de29..69e58d5 100644
--- a/levels/testLevel2/easy/notes.txt
+++ b/levels/testLevel2/easy/notes.txt
@@ -0,0 +1,26 @@
+s0.00
+d1.00
+d2.00
+f3.00
+s4.00
+j5.00
+k6.00
+j7.00
+f8.00
+d9.00
+f10.00
+s11.00
+j12.00
+k13.00
+j14.00
+s15.00
+f16.00
+d17.00
+f18.00
+s19.00
+j20.00
+k21.00
+j22.00
+s23.00
+f24.00
+d25.00
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