aboutsummaryrefslogtreecommitdiff
path: root/src/devmenu/NotesEditor.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/devmenu/NotesEditor.java')
-rw-r--r--src/devmenu/NotesEditor.java67
1 files changed, 59 insertions, 8 deletions
diff --git a/src/devmenu/NotesEditor.java b/src/devmenu/NotesEditor.java
index 5f26890..e94ff2e 100644
--- a/src/devmenu/NotesEditor.java
+++ b/src/devmenu/NotesEditor.java
@@ -1,11 +1,22 @@
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;
+import javafx.scene.media.MediaPlayer;
+import javafx.scene.media.MediaView;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import main.Difficulty;
@@ -13,38 +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;
-
- Text timerDisplay = new Text("TIMER");
+
+ help = new Text(t1);
Button start = new Button("Start");
start.setOnAction(e -> start());
- Button stop = new Button("Stop");
+ Button stop = new Button("Pause");
stop.setOnAction(e -> stop());
- HBox main = new HBox();
- main.getChildren().addAll(timerDisplay,start,stop);
+ Media song = new Media(diff.level.song.toURI().toString());
+ mediaPlayer = new MediaPlayer(song);
+ new MediaView(mediaPlayer);
+
+ VBox main = new VBox();
+ 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()
{
- music = new AudioFilePlayer(new File(diff.thisDir, "song.wav").toPath().toString());
+ mediaPlayer.play();
timer = new Timer(diff.bpm);
+ help.setText(t2);
}
private void stop()
{
-
+ mediaPlayer.stop();
+ diff.numBeats = (int)timer.time();
+ timer = null;
+ writer.close();
+ help.setText(t1);
}
} \ No newline at end of file