diff options
author | sowgro <tpoke.ferrari@gmail.com> | 2024-10-15 02:09:12 -0400 |
---|---|---|
committer | sowgro <tpoke.ferrari@gmail.com> | 2024-10-15 02:09:12 -0400 |
commit | 70d3f3a9d45fdb12d1eaf937b4c7ab90df6a8545 (patch) | |
tree | f5e7a02f4273bb8d4dd02e77067d2c433def4ca2 /src/main/java/net/sowgro/npehero/gui/GameOver.java | |
parent | 84b072a945bb5b0b541c9ca6c30af56dc39ff631 (diff) | |
download | NPEhero-70d3f3a9d45fdb12d1eaf937b4c7ab90df6a8545.tar.gz NPEhero-70d3f3a9d45fdb12d1eaf937b4c7ab90df6a8545.tar.bz2 NPEhero-70d3f3a9d45fdb12d1eaf937b4c7ab90df6a8545.zip |
Improve GameOver and other fixes
Diffstat (limited to 'src/main/java/net/sowgro/npehero/gui/GameOver.java')
-rwxr-xr-x | src/main/java/net/sowgro/npehero/gui/GameOver.java | 65 |
1 files changed, 45 insertions, 20 deletions
diff --git a/src/main/java/net/sowgro/npehero/gui/GameOver.java b/src/main/java/net/sowgro/npehero/gui/GameOver.java index bcdd25e..417c6cf 100755 --- a/src/main/java/net/sowgro/npehero/gui/GameOver.java +++ b/src/main/java/net/sowgro/npehero/gui/GameOver.java @@ -1,5 +1,7 @@ package net.sowgro.npehero.gui; +import javafx.animation.KeyFrame; +import javafx.animation.Timeline; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.control.Button; @@ -10,6 +12,7 @@ import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; import javafx.scene.text.Text; +import javafx.util.Duration; import net.sowgro.npehero.Driver; import net.sowgro.npehero.gameplay.ScoreController; import net.sowgro.npehero.main.ErrorDisplay; @@ -22,47 +25,52 @@ import java.io.IOException; public class GameOver extends Page { + private final Label yourScore; HBox content = new HBox(); + ScoreController score2; public GameOver(Level level, Difficulty diff, Page prev, ScoreController score2) { - Text topText = new Text(); - topText.setText("Level Complete"); + this.score2 = score2; + + Label topText = new Label(); + topText.setText("LEVEL COMPLETE"); topText.getStyleClass().add("t11"); - Text levelName = new Text(); + Label levelName = new Label(); levelName.setText(level.title); levelName.getStyleClass().add("t2"); - Text levelArtist = new Text(); + Label levelArtist = new Label(); levelArtist.setText(level.artist+" - "+diff.title); levelArtist.getStyleClass().add("t3"); VBox levelDetailsBox = new VBox(); levelDetailsBox.getChildren().addAll(levelName,levelArtist); levelDetailsBox.getStyleClass().add("box"); - levelDetailsBox.setPadding(new Insets(5)); + levelDetailsBox.setPadding(new Insets(10)); + + var scoreLabel = new BorderPane(); + scoreLabel.setLeft(new Label("Final Score")); + scoreLabel.setRight(new Label("Max Score")); - Text scoreLabel = new Text(); - scoreLabel.setText("Final score"); - scoreLabel.getStyleClass().add("t3"); - Label maxScoreLabel = new Label("Max possible score"); ScoreController maxScoreController = new ScoreController(); for (int i = 0; i < diff.notes.list.size(); i++) { maxScoreController.perfect(); } - Label maxScore = new Label(maxScoreController.score.get() + ""); - Text score = new Text(); - score.setText(score2.score.get()+""); - score.getStyleClass().add("t2"); + var score = new BorderPane(new Label("/")); + yourScore = new Label("0"); + score.setLeft(yourScore); + score.setRight( new Label(maxScoreController.score.get() + "")); +// score.getStyleClass().add("t2"); score.setStyle("-fx-font-size: 30;"); VBox scoreBox = new VBox(); scoreBox.getStyleClass().add("box"); - scoreBox.getChildren().addAll(scoreLabel,score, maxScoreLabel, maxScore); - scoreBox.setPadding(new Insets(5)); + scoreBox.getChildren().addAll(scoreLabel,score); + scoreBox.setPadding(new Insets(10)); Text nameLabel = new Text(); @@ -92,20 +100,20 @@ public class GameOver extends Page VBox nameBox = new VBox(); nameBox.getChildren().addAll(nameLabel,b); nameBox.getStyleClass().add("box"); - nameBox.setSpacing(5); - nameBox.setPadding(new Insets(5)); + nameBox.setSpacing(10); + nameBox.setPadding(new Insets(10)); Button exit = new Button(); exit.setText("Back"); - exit.setOnAction(e -> { + exit.setOnAction(_ -> { Sound.playSfx(Sound.BACKWARD); Driver.setMenu(prev); }); Button replay = new Button(); replay.setText("Replay"); - replay.setOnAction(e -> { + replay.setOnAction(_ -> { Sound.playSfx(Sound.FORWARD); Driver.setMenu(new LevelSurround(diff, prev)); }); @@ -118,13 +126,30 @@ public class GameOver extends Page centerBox.getChildren().addAll(topText,levelDetailsBox,scoreBox,nameBox,buttonBox); centerBox.setSpacing(10); centerBox.setAlignment(Pos.CENTER); - centerBox.setMaxWidth(300); + centerBox.setPrefWidth(450); + centerBox.setMaxWidth(450); content.getChildren().add(centerBox); content.setAlignment(Pos.CENTER); } @Override + public void onView() { + // score count up animation + Timeline tl = new Timeline(); + int stepSize = score2.score.get() / 20; + for (int i = 1; i <= 20; i++) { + int i1 = i; + tl.getKeyFrames().add(new KeyFrame( + Duration.seconds(i / 20.0 + 0.5), + _ -> yourScore.setText(i1 * stepSize + "") + )); + } + tl.play(); + + } + + @Override public Pane getContent() { return content; } |