From a0739dc019417f17e77f6c959ebc0989c873514c Mon Sep 17 00:00:00 2001 From: sowgro Date: Fri, 2 Jun 2023 02:31:20 -0400 Subject: kinda working note writer --- src/devmenu/DiffEditor.java | 11 ++++++++- src/devmenu/NotesEditor.java | 55 ++++++++++++++++++++++++++++++++++++++------ src/gameplay/Timer.java | 4 ++++ src/main/Difficulty.java | 2 +- 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 leaderboard = FXCollections.observableArrayList(); public File notes; - public Double bpm; + public Double bpm = 0.0; public int numBeats; public Level level; -- cgit v1.2.3