diff options
author | Aidan Ross <aross02@fairport.org> | 2023-05-24 08:31:24 -0400 |
---|---|---|
committer | Aidan Ross <aross02@fairport.org> | 2023-05-24 08:31:24 -0400 |
commit | a5a885fa2601e94e65ae4bd70a425a0bcf6c1755 (patch) | |
tree | 004ffb49e2aa8b290280c96e302e0b45e249940f | |
parent | 526ef0e608272f9d53c07cb802182ded9996e216 (diff) | |
download | NPEhero-a5a885fa2601e94e65ae4bd70a425a0bcf6c1755.tar.gz NPEhero-a5a885fa2601e94e65ae4bd70a425a0bcf6c1755.tar.bz2 NPEhero-a5a885fa2601e94e65ae4bd70a425a0bcf6c1755.zip |
Improvements to newSongPlayer
-rw-r--r-- | src/fallTest/TButton.java | 2 | ||||
-rw-r--r-- | src/fallTest/newSongPlayer.java | 77 |
2 files changed, 66 insertions, 13 deletions
diff --git a/src/fallTest/TButton.java b/src/fallTest/TButton.java index d18771f..117a8e1 100644 --- a/src/fallTest/TButton.java +++ b/src/fallTest/TButton.java @@ -15,7 +15,7 @@ public class TButton extends Rectangle { super(); - Color newCol = new Color(c.darker().getRed(), c.darker().getGreen(), c.darker().getBlue(), 0.25); + Color newCol = new Color(c.darker().getRed(), c.darker().getGreen(), c.darker().getBlue(), 0.45); super.setFill(newCol); super.setWidth(a); super.setHeight(b); diff --git a/src/fallTest/newSongPlayer.java b/src/fallTest/newSongPlayer.java index 7de3aac..5e7a3c6 100644 --- a/src/fallTest/newSongPlayer.java +++ b/src/fallTest/newSongPlayer.java @@ -35,7 +35,12 @@ import javafx.util.*; public class newSongPlayer extends Pane
{
Timer timer = new Timer();
- final int TIME = 2000; //delay for notes falling down the screen
+ final int TIME = 1500; //delay for notes falling down the screen
+
+ Rectangle goalPerfect = new Rectangle();
+ HBox buttonBox = new HBox();
+ VBox polish = new VBox();
+ VBox place = new VBox();
TButton dButton = new TButton(Color.RED, 50, 50, 5);
Queue<NoteInfo> dSends = new LinkedList<NoteInfo>(); //Queue that dictates when to send the notes
@@ -99,11 +104,14 @@ public class newSongPlayer extends Pane public void init() {
loadSong();
-
+
Rectangle field = new Rectangle(50, 50, new Color(0, 0, 0, 0.7));
- field.heightProperty().bind(this.getScene().getWindow().heightProperty().multiply(0.95));
+ field.heightProperty().bind(this.getScene().getWindow().heightProperty());
field.widthProperty().bind(this.getScene().getWindow().widthProperty().divide(2.7).add(50));
+ goalPerfect.heightProperty().bind(this.getScene().getWindow().heightProperty().divide(32));
+ goalPerfect.heightProperty().bind(this.getScene().getWindow().widthProperty());
+
genButton(dButton);
genButton(fButton);
genButton(sButton);
@@ -113,22 +121,46 @@ public class newSongPlayer extends Pane this.getScene().setOnKeyPressed(e -> {
if (e.getCode() == KeyCode.D) {
System.out.println("D");
+ if (dLane.size() > 0 && distanceToGoal(dLane.get(getClosestNote(dLane))) < ()) {
+ super.getChildren().removeAll(dLane.get(getClosestNote(dLane)));
+ dLane.remove(dLane.get(getClosestNote(dLane)));
+ System.out.println("Hit");
+ }
}
if (e.getCode() == KeyCode.F) {
System.out.println("F");
+ if (fLane.size() > 0 && fLane.get(getClosestNote(fLane)).intersects(buttonBox.getBoundsInLocal())) {
+ super.getChildren().removeAll(fLane.get(getClosestNote(fLane)));
+ fLane.remove(fLane.get(getClosestNote(fLane)));
+ System.out.println("Hit");
+ }
}
if (e.getCode() == KeyCode.SPACE) {
System.out.println("SPC");
+ if (spaceLane.size() > 0 && spaceLane.get(getClosestNote(spaceLane)).intersects(buttonBox.getBoundsInLocal())) {
+ super.getChildren().removeAll(spaceLane.get(getClosestNote(spaceLane)));
+ spaceLane.remove(spaceLane.get(getClosestNote(spaceLane)));
+ System.out.println("Hit");
+ }
}
if (e.getCode() == KeyCode.J) {
System.out.println("J");
+ if (jLane.size() > 0 && jLane.get(getClosestNote(jLane)).intersects(buttonBox.getBoundsInLocal())) {
+ super.getChildren().removeAll(jLane.get(getClosestNote(jLane)));
+ jLane.remove(jLane.get(getClosestNote(jLane)));
+ System.out.println("Hit");
+ }
}
if (e.getCode() == KeyCode.K) {
System.out.println("K");
+ if (kLane.size() > 0 && kLane.get(getClosestNote(kLane)).intersects(buttonBox.getBoundsInLocal())) {
+ super.getChildren().removeAll(kLane.get(getClosestNote(kLane)));
+ kLane.remove(kLane.get(getClosestNote(kLane)));
+ System.out.println("Hit");
+ }
}
});
- HBox buttonBox = new HBox();
buttonBox.setStyle("-fx-padding: 0;" + "-fx-border-style: solid inside;"
+ "-fx-border-width: 0;" + "-fx-border-insets: 20;"
+ "-fx-background-color: black;" + "-fx-opacity: 0.67;");
@@ -136,21 +168,20 @@ public class newSongPlayer extends Pane buttonBox.getChildren().addAll(dButton, fButton, sButton, jButton, kButton);
buttonBox.setSpacing(10);
- VBox polish = new VBox();
polish.getChildren().addAll(field);
- polish.setAlignment(Pos.TOP_CENTER);
+ polish.setAlignment(Pos.BASELINE_CENTER);
- VBox place = new VBox();
place.prefWidthProperty().bind(this.getScene().widthProperty());
place.prefHeightProperty().bind(this.getScene().heightProperty());
- place.setAlignment(Pos.BOTTOM_CENTER);
place.getChildren().addAll(buttonBox);
+ place.setAlignment(Pos.BOTTOM_CENTER);
place.setSpacing(10);
StackPane root = new StackPane();
root.getChildren().addAll(polish, place);
-
- super.getChildren().add(root);
+
+ goalPerfect.setY(dButton.getY());
+ super.getChildren().addAll(root, goalPerfect);
gameLoop.start();
}
@@ -173,10 +204,10 @@ public class newSongPlayer extends Pane anim.setAutoReverse(false);
anim.setNode(lane.get(lane.size()-1));
anim.play();
+
anim.setOnFinished(e -> {
super.getChildren().removeAll(anim.getNode());
});
- System.out.println(pos);
super.getChildren().add(lane.get(lane.size()-1));
}
}
@@ -202,4 +233,26 @@ public class newSongPlayer extends Pane }
};
-}
+ private int getClosestNote(ArrayList<Block> searchLane) {
+ int pos = 0;
+
+ for (int i=0; i<searchLane.size(); i++) {
+ if (distanceToGoal(searchLane.get(i)) < distanceToGoal(searchLane.get(pos))) {
+ pos = i;
+ }
+ }
+ return pos;
+ }
+
+ private double distanceToGoal(Block note) {
+ return Math.abs(note.getY()-dButton.getY());
+ }
+
+ private void checkForNote(ArrayList<Block> lane) {
+ if (lane.size() > 0 && distanceToGoal(lane.get(getClosestNote(lane))) < 50) {
+ super.getChildren().removeAll(lane.get(getClosestNote(lane)));
+ lane.remove(lane.get(getClosestNote(lane)));
+ System.out.println("Hit");
+ }
+ }
+}
\ No newline at end of file |