From 33eb2bb6fe13db0fcffe6009d176e0a6541dbfef Mon Sep 17 00:00:00 2001 From: Mat Date: Thu, 18 May 2023 17:51:37 +0200 Subject: [PATCH] Add a Load Level Button --- .../main/java/school_project/Controller.java | 2 + .../java/school_project/Menu/MenuAccueil.java | 92 ++++++++++++++----- 2 files changed, 72 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/school_project/Controller.java b/app/src/main/java/school_project/Controller.java index c9636a0..dfb8e92 100644 --- a/app/src/main/java/school_project/Controller.java +++ b/app/src/main/java/school_project/Controller.java @@ -9,6 +9,7 @@ import javafx.stage.Screen; import javafx.stage.Stage; import school_project.Menu.MenuAccueil; +import java.io.File; import java.io.IOException; @@ -19,6 +20,7 @@ public class Controller extends Application { @Override public void start(Stage primaryStage) throws IOException { + new File("save.slevel"); stage = primaryStage; screen_size = new Vec2( (int) Screen.getPrimary().getBounds().getWidth(), diff --git a/app/src/main/java/school_project/Menu/MenuAccueil.java b/app/src/main/java/school_project/Menu/MenuAccueil.java index 5780562..cf73c13 100644 --- a/app/src/main/java/school_project/Menu/MenuAccueil.java +++ b/app/src/main/java/school_project/Menu/MenuAccueil.java @@ -2,41 +2,89 @@ package school_project.Menu; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.control.Button; +import javafx.scene.control.ChoiceBox; import javafx.scene.control.Label; import javafx.scene.layout.BorderPane; +import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.scene.text.Font; import school_project.Controller; -public class MenuAccueil extends BorderPane { +import school_project.GameUI; +import school_project.MapGenerator; +import school_project.Parsers.FileParserFactory; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +public class MenuAccueil extends StackPane { public MenuAccueil(){ super(); - //create all the objet that i need - Button Play = new Button("Play"); + //create all the objet that I need + ChoiceBox SlctDifficulty = new ChoiceBox<>(); + SlctDifficulty.getItems().addAll("Easy", "Medium", "Difficult"); + + Label RdmLvl = new Label("Random Level : "); + Button LoadLvl = new Button("Load game"); Button SelectLevel= new Button("Select Level"); Button Trophy = new Button("Trophy"); Label Title = new Label("Welcome to Road to Master"); - //set up all the Button where i need - setTop(Title); - setLeft(Play); - setRight(SelectLevel); - setBottom(Trophy); - Title.setFont(Font.font(20)); - Title.setTextFill(Color.GOLD); - setAlignment(Title, Pos.CENTER); - setAlignment(Play,Pos.CENTER); - setAlignment(SelectLevel,Pos.CENTER); - setAlignment(Trophy,Pos.CENTER); - setPadding(new Insets(20,60,20,60)); + SlctDifficulty.setOnAction(event -> { + String choosediff = SlctDifficulty.getSelectionModel().getSelectedItem(); + System.out.println(choosediff); + switch (choosediff) { + case "Easy": + try { + Controller.switchRoot(new GameUI(MapGenerator.generate(MapGenerator.Difficulty.Easy))); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } + break; + case "Medium": + try { + Controller.switchRoot(new GameUI(MapGenerator.generate(MapGenerator.Difficulty.Medium))); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } + break; + case "Difficult": + try { + Controller.switchRoot(new GameUI(MapGenerator.generate(MapGenerator.Difficulty.Difficult))); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } + break; + } + }); + + //set up all the Button where I need + getChildren().addAll(Title,SlctDifficulty,SelectLevel,RdmLvl,LoadLvl); + RdmLvl.setFont(Font.font(25)); + RdmLvl.setTextFill(Color.GOLD); + Title.setFont(Font.font(40)); + Title.setTextFill(Color.RED); + setAlignment(Title, Pos.TOP_CENTER); + setAlignment(LoadLvl,Pos.BOTTOM_CENTER); + setAlignment(SlctDifficulty,Pos.CENTER_LEFT); + setAlignment(SelectLevel,Pos.CENTER_RIGHT); + setAlignment(RdmLvl, Pos.CENTER_LEFT); + + setMargin(RdmLvl,new Insets(0,0,0,100)); + setMargin(SlctDifficulty,new Insets(0,0,0,300)); + setMargin(SelectLevel,new Insets(0,300,0,0)); + setMargin(Title,new Insets(200,0,0,0)); + setMargin(LoadLvl,new Insets(0,0,200,0)); + SelectLevel.setOnAction(event -> Controller.switchRoot(new MenuLevel(1))); + LoadLvl.setOnAction(event -> { + try { + FileParserFactory.loadMapFromFile(new File("save.slevel")); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + getStyleClass().add("BorderPane"); getStylesheets().add(String.valueOf(getClass().getResource("StyleMenuAcceuil.css"))); - - - } - - - -} +} \ No newline at end of file