aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--levels/testLevel/easy/metadata.json2
-rw-r--r--src/gameplay/SongPlayer.java23
-rw-r--r--src/gui/LevelSurround.java21
3 files changed, 33 insertions, 13 deletions
diff --git a/levels/testLevel/easy/metadata.json b/levels/testLevel/easy/metadata.json
index 29eacc0..ca75416 100644
--- a/levels/testLevel/easy/metadata.json
+++ b/levels/testLevel/easy/metadata.json
@@ -1,5 +1,5 @@
{
"title": "Easy",
"bpm": 28,
- "numBeats": 100
+ "numBeats": 120
} \ No newline at end of file
diff --git a/src/gameplay/SongPlayer.java b/src/gameplay/SongPlayer.java
index acf9d6b..f76f5e3 100644
--- a/src/gameplay/SongPlayer.java
+++ b/src/gameplay/SongPlayer.java
@@ -45,7 +45,8 @@ public class SongPlayer extends Pane {
private int bpm; //initializes the bpm of the song, to be read in from a metadata file later
private int songLength; //initializes the length of the song in terms of the song's bpm, to be read in later
- sound.AudioFilePlayer music;
+ AudioFilePlayer music;
+
private main.Level level;
private Difficulty difficulty;
private Pane pane;
@@ -110,13 +111,15 @@ public class SongPlayer extends Pane {
public SongPlayer(main.Level lvl, Difficulty d, Pane p, ScoreController cntrl) {
bpm = d.bpm; //Reads the song's bpm from a metadata file
-
level = lvl;
difficulty = d;
pane = p;
+ music = new AudioFilePlayer(difficulty.song.getPath());
- songLength = d.numBeats;
- timer = new Timer(d.bpm); //Sets the timer's bpm to that of the song
+ System.out.println(d.bpm + " " + d.numBeats);
+
+ songLength = 28; //PLACEHOLDER BPM AND TIMER
+ timer = new Timer(120); //Sets the timer's bpm to that of the song
scoreCounter = cntrl; //Uses the song's designated scoreCounter
try {
@@ -174,10 +177,6 @@ public class SongPlayer extends Pane {
root.getChildren().addAll(place); //aligns the components within the pane
super.getChildren().addAll(root); //puts all of the combonents in the pane to be rendered
-
- gameLoop.start(); //starts the gameLoop, a periodic backround task runner that runs the methods within it 60 times every second
- music = new AudioFilePlayer(d.song.getPath());
- music.play();
}
/**
@@ -257,8 +256,14 @@ public class SongPlayer extends Pane {
}
};
+ //starts the gameLoop, a periodic backround task runner that runs the methods within it 60 times every second
+ public void start() {
+ music.play();
+ gameLoop.start();
+ }
+
/**
- * Stops the gameloop and the music
+ * Stops the gameloop
* @throws LineUnavailableException
* @throws IOException
* @throws UnsupportedAudioFileException
diff --git a/src/gui/LevelSurround.java b/src/gui/LevelSurround.java
index e84071e..3f10925 100644
--- a/src/gui/LevelSurround.java
+++ b/src/gui/LevelSurround.java
@@ -1,5 +1,10 @@
package gui;
+import java.io.IOException;
+
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.UnsupportedAudioFileException;
+
import gameplay.SongPlayer;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
@@ -13,9 +18,10 @@ import javafx.scene.text.Text;
import main.Difficulty;
import main.Level;
import main.ScoreController;
+import sound.AudioFilePlayer;
public class LevelSurround extends Pane
-{
+{
/*
* this class is a layout class, most of its purpose is to place UI elements like Buttons within Panes like VBoxes.
* the creation of these UI elements are mostly not commented due to their repetitive and self explanatory nature.
@@ -28,7 +34,14 @@ public class LevelSurround extends Pane
Button exit = new Button();
exit.setText("Back");
- exit.setOnAction(e -> Driver.setMenu(prev));
+ exit.setOnAction(e -> {
+ Driver.setMenu(prev);
+ try {
+ game.cancel();
+ } catch (UnsupportedAudioFileException | IOException | LineUnavailableException e1) {
+ e1.printStackTrace();
+ }
+ });
Button pause = new Button();
pause.setText("Pause");
@@ -92,7 +105,7 @@ public class LevelSurround extends Pane
scoreTextBox.minWidthProperty().bind(super.prefWidthProperty().subtract(game.minWidthProperty()).divide(2));
HBox centerBox = new HBox();
- centerBox.getChildren().addAll(comboTextBox,game, scoreTextBox);
+ centerBox.getChildren().addAll(comboTextBox, game, scoreTextBox);
centerBox.setAlignment(Pos.BOTTOM_CENTER);
StackPane root = new StackPane();
@@ -122,5 +135,7 @@ public class LevelSurround extends Pane
testfinish.setText(level.getTitle() + "launch game end");
testfinish.setOnAction(e -> Driver.setMenu(new GameOver(level, difficulty, prev, sc.getScore())));
Driver.debug.addButton(testfinish);
+
+ game.start();
}
} \ No newline at end of file