diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2023-05-17 01:43:00 -0400 | 
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2023-05-17 01:43:00 -0400 | 
| commit | 5c2c149dc1db92d8a457959c7f2071ea3005348c (patch) | |
| tree | 18a0bde1f7f44f60b11f7d9193fadaa7d026755e | |
| parent | 4a1f4a98116b5c59efe0606375b833a722a0d281 (diff) | |
| download | NPEhero-5c2c149dc1db92d8a457959c7f2071ea3005348c.tar.gz NPEhero-5c2c149dc1db92d8a457959c7f2071ea3005348c.tar.bz2 NPEhero-5c2c149dc1db92d8a457959c7f2071ea3005348c.zip | |
level surround stuff
| -rw-r--r-- | src/gui/Driver.java | 16 | ||||
| -rw-r--r-- | src/gui/LevelDetails.java | 9 | ||||
| -rw-r--r-- | src/gui/LevelSurround.java | 74 | 
3 files changed, 95 insertions, 4 deletions
| diff --git a/src/gui/Driver.java b/src/gui/Driver.java index 77fe0b0..59002c2 100644 --- a/src/gui/Driver.java +++ b/src/gui/Driver.java @@ -17,6 +17,7 @@ import javafx.stage.Stage;  public class Driver extends Application   { +    static Stage primaryStage;      static HashMap<String,Pane> menus = new HashMap<String,Pane>();      static Pane primaryPane = new Pane(); @@ -26,8 +27,9 @@ public class Driver extends Application      }      @Override -    public void start(Stage primaryStage)  +    public void start(Stage newPrimaryStage)       { +        primaryStage = newPrimaryStage;          menus.put("MainMenu", new MainMenu());          menus.put("LevelSelector", new LevelSelector());          menus.put("Settings", new Settings()); @@ -61,6 +63,18 @@ public class Driver extends Application          primaryPane.requestFocus();      } +    public static void setCustomMenu(Pane pane) +    { +        if (! primaryPane.getChildren().isEmpty()) +        { +            primaryPane.getChildren().remove(0); +        } +        pane.minWidthProperty().bind(primaryStage.widthProperty());  +        pane.minHeightProperty().bind(primaryStage.heightProperty()); +        primaryPane.getChildren().add(pane); +        primaryPane.requestFocus(); +    } +      public static void setBackground(String url)      {          primaryPane.setBackground(new Background( diff --git a/src/gui/LevelDetails.java b/src/gui/LevelDetails.java index dee2f00..5623261 100644 --- a/src/gui/LevelDetails.java +++ b/src/gui/LevelDetails.java @@ -1,5 +1,6 @@  package gui; +import javafx.geometry.Insets;  import javafx.geometry.Pos;  import javafx.scene.control.Button;  import javafx.scene.control.ListView; @@ -22,6 +23,7 @@ public class LevelDetails extends VBox          details.maxWidthProperty().bind(super.widthProperty());           details.maxHeightProperty().bind(super.heightProperty().multiply(0.75));          details.getStyleClass().add("textBox"); +        details.setPadding(new Insets(10));          Button play = new Button();          play.setText("Play"); @@ -31,7 +33,7 @@ public class LevelDetails extends VBox              Text desc = new Text();              desc.setText("Select a level from the left pane");              desc.setFill(Color.WHITE); -            desc.wrappingWidthProperty().bind(super.widthProperty()); +            desc.wrappingWidthProperty().bind(super.widthProperty().subtract(10));              desc.setTextAlignment(TextAlignment.CENTER);              details.setAlignment(Pos.CENTER);              details.getChildren().addAll(desc); @@ -44,12 +46,12 @@ public class LevelDetails extends VBox              title.setText("Test level 1");              title.setFill(Color.WHITE);              title.setFont(new Font(50)); -            title.wrappingWidthProperty().bind(super.widthProperty()); +            title.wrappingWidthProperty().bind(super.widthProperty().subtract(10));              Text desc = new Text();              desc.setText("long description with lots of words. what we write does not actually need to be long i just wan t make sure it can word wrap");              desc.setFill(Color.WHITE); -            desc.wrappingWidthProperty().bind(super.widthProperty()); +            desc.wrappingWidthProperty().bind(super.widthProperty().subtract(10));              ImageView previewView = new ImageView();              Image preview = new Image("assets/pico.png"); @@ -58,6 +60,7 @@ public class LevelDetails extends VBox              previewView.fitWidthProperty().bind(super.widthProperty().multiply(0.5));              previewView.setPreserveRatio(true);              details.getChildren().addAll(title,desc,previewView); +            play.setOnAction(e -> Driver.setCustomMenu(new LevelSurround()));          }          VBox rightBox = new VBox(); diff --git a/src/gui/LevelSurround.java b/src/gui/LevelSurround.java new file mode 100644 index 0000000..22fcf97 --- /dev/null +++ b/src/gui/LevelSurround.java @@ -0,0 +1,74 @@ +package gui; + +import fallTest.Hbox; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.control.Button; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Pane; +import javafx.scene.layout.StackPane; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.scene.text.Font; +import javafx.scene.text.Text; + +public class LevelSurround extends Pane +{ +    //will have param (Level l) +    public LevelSurround() +    { +        Button exit = new Button(); +        exit.setText("Exit"); +        exit.setOnAction(e -> Driver.setMenu("LevelSelector")); + +        Button pause = new Button(); +        pause.setText("Pause"); + +        HBox buttonBox = new HBox(); +        buttonBox.getChildren().addAll(exit,pause); +        buttonBox.setAlignment(Pos.TOP_LEFT); +        buttonBox.setSpacing(10); + +        Text title = new Text(); +        title.setText("Test level 1"); +        title.setFill(Color.WHITE); +        title.setFont(new Font(50)); + +        Text diff = new Text(); +        diff.setText("Easy"); +        diff.setFill(Color.WHITE); + +        VBox textBox = new VBox(); +        textBox.setAlignment(Pos.TOP_RIGHT); +        textBox.getChildren().addAll(title,diff); + +        BorderPane topBar = new BorderPane(); +        topBar.setLeft(buttonBox); +        topBar.setRight(textBox); +        topBar.setPadding(new Insets(10)); +         +        Text title = new Text(); +        title.setText("Test level 1"); +        title.setFill(Color.WHITE); +        title.setFont(new Font(50)); + +        Text diff = new Text(); +        diff.setText("Easy"); +        diff.setFill(Color.WHITE); + +        VBox textBox = new VBox(); +        textBox.setAlignment(Pos.TOP_RIGHT); +        textBox.getChildren().addAll(title,diff); + +        HBox centerBox = new HBox(); +        centerBox.getStyleClass().add("textBox"); + +        StackPane root = new StackPane(); +        root.getChildren().addAll(topBar,centerBox); + +        super.getChildren().add(root); +        root.minWidthProperty().bind(super.minWidthProperty()); +        root.minHeightProperty().bind(super.minHeightProperty()); +    } +}
\ No newline at end of file | 
