aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2023-06-02 02:31:20 -0400
committersowgro <tpoke.ferrari@gmail.com>2023-06-02 02:31:20 -0400
commita0739dc019417f17e77f6c959ebc0989c873514c (patch)
tree91574cb0bf61a0c669b33bd13beba235995181c1
parent571bab88c599571ee5bd9c6f5f8af2f3016fb19d (diff)
downloadNPEhero-a0739dc019417f17e77f6c959ebc0989c873514c.tar.gz
NPEhero-a0739dc019417f17e77f6c959ebc0989c873514c.tar.bz2
NPEhero-a0739dc019417f17e77f6c959ebc0989c873514c.zip
kinda working note writer
-rw-r--r--src/devmenu/DiffEditor.java11
-rw-r--r--src/devmenu/NotesEditor.java55
-rw-r--r--src/gameplay/Timer.java4
-rw-r--r--src/main/Difficulty.java2
4 files changed, 63 insertions, 9 deletions
diff --git a/src/devmenu/DiffEditor.java b/src/devmenu/DiffEditor.java
index d53505d..e2ce5d8 100644
--- a/src/devmenu/DiffEditor.java
+++ b/src/devmenu/DiffEditor.java
@@ -1,5 +1,8 @@
package devmenu;
+import java.io.FileNotFoundException;
+import java.io.UnsupportedEncodingException;
+
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
@@ -33,7 +36,13 @@ public class DiffEditor
TextField numBeats = new TextField(diff.numBeats+"");
Button editNotes = new Button("Edit notes");
- editNotes.setOnAction(e -> new NotesEditor(diff));
+ editNotes.setOnAction(e -> {
+ try {
+ new NotesEditor(diff);
+ } catch (FileNotFoundException | UnsupportedEncodingException e1) {
+ e1.printStackTrace();
+ }
+ });
Button editScores = new Button("Edit leaderboard");
diff --git a/src/devmenu/NotesEditor.java b/src/devmenu/NotesEditor.java
index 41bc1c3..e94ff2e 100644
--- a/src/devmenu/NotesEditor.java
+++ b/src/devmenu/NotesEditor.java
@@ -1,9 +1,17 @@
package devmenu;
+import java.io.BufferedWriter;
import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
+
import gameplay.Timer;
import javafx.scene.Scene;
import javafx.scene.control.Button;
+import javafx.scene.input.KeyCode;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.media.Media;
@@ -16,45 +24,78 @@ import sound.AudioFilePlayer;
public class NotesEditor
{
+ Text help;
+ String t1 = "Press Start to begin recording. Use the same keys.";
+ String t2 = "Now recording. Press Stop or ESC to finish";
MediaPlayer mediaPlayer;
Difficulty diff;
AudioFilePlayer music;
Timer timer;
- public NotesEditor(Difficulty diff)
+ PrintWriter writer;
+ public NotesEditor(Difficulty diff) throws FileNotFoundException, UnsupportedEncodingException
{
this.diff = diff;
+ help = new Text(t1);
+
Button start = new Button("Start");
start.setOnAction(e -> start());
Button stop = new Button("Pause");
stop.setOnAction(e -> stop());
- Button print = new Button("print");
- print.setOnAction(e -> System.out.println(timer.time()));
-
Media song = new Media(diff.level.song.toURI().toString());
mediaPlayer = new MediaPlayer(song);
new MediaView(mediaPlayer);
VBox main = new VBox();
- main.getChildren().addAll(start,stop,print);
+ main.getChildren().addAll(help,start,stop);
Scene scene = new Scene(main);
Stage primaryStage = new Stage();
primaryStage.setScene(scene);
primaryStage.show();
+
+ writer = new PrintWriter(diff.notes, "UTF-8");
+
+ scene.setOnKeyPressed(e -> {
+ if (e.getCode() == KeyCode.D) {
+ writer.println("d"+timer);
+ }
+ if (e.getCode() == KeyCode.F) {
+ writer.println("f"+timer);
+ }
+ if (e.getCode() == KeyCode.SPACE) {
+ writer.println("s"+timer);
+ }
+ if (e.getCode() == KeyCode.J) {
+ writer.println("j"+timer);
+ }
+ if (e.getCode() == KeyCode.K) {
+ writer.println("k"+timer);
+ }
+ if (e.getCode() == KeyCode.ESCAPE)
+ {
+ stop();
+ }
+ });
+
+ primaryStage.setOnCloseRequest(e -> stop());
}
private void start()
{
mediaPlayer.play();
-
timer = new Timer(diff.bpm);
+ help.setText(t2);
}
private void stop()
{
- mediaPlayer.pause();
+ mediaPlayer.stop();
+ diff.numBeats = (int)timer.time();
+ timer = null;
+ writer.close();
+ help.setText(t1);
}
} \ No newline at end of file
diff --git a/src/gameplay/Timer.java b/src/gameplay/Timer.java
index 4ffb1fb..5ff3b16 100644
--- a/src/gameplay/Timer.java
+++ b/src/gameplay/Timer.java
@@ -21,4 +21,8 @@ public class Timer
public double time() {
return ((double)(System.currentTimeMillis()-timeStart))*(bpm/60000.0);
}
+
+ public String toString() {
+ return ""+((double)(System.currentTimeMillis()-timeStart))*(bpm/60000.0);
+ }
}
diff --git a/src/main/Difficulty.java b/src/main/Difficulty.java
index 0691675..abb12f4 100644
--- a/src/main/Difficulty.java
+++ b/src/main/Difficulty.java
@@ -17,7 +17,7 @@ public class Difficulty
public String title = "Unnamed";
private ObservableList<LeaderboardEntry> leaderboard = FXCollections.observableArrayList();
public File notes;
- public Double bpm;
+ public Double bpm = 0.0;
public int numBeats;
public Level level;