diff options
Diffstat (limited to '')
| -rw-r--r-- | src/devmenu/DiffEditor.java | 11 | ||||
| -rw-r--r-- | src/devmenu/NotesEditor.java | 55 | ||||
| -rw-r--r-- | src/gameplay/Timer.java | 4 | ||||
| -rw-r--r-- | 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<LeaderboardEntry> leaderboard = FXCollections.observableArrayList();      public File notes; -    public Double bpm; +    public Double bpm = 0.0;      public int numBeats;      public Level level;  | 
