diff --git a/app/src/main/java/school_project/Controller.java b/app/src/main/java/school_project/Controller.java index 9af36d9..2ae3f73 100644 --- a/app/src/main/java/school_project/Controller.java +++ b/app/src/main/java/school_project/Controller.java @@ -1,6 +1,3 @@ -/* - * This Java source file was generated by the Gradle 'init' task. - */ package school_project; import javafx.application.Application; @@ -10,14 +7,13 @@ import javafx.scene.Scene; import javafx.scene.input.KeyCombination; import javafx.stage.Screen; import javafx.stage.Stage; -import school_project.Parsers.FileParserFactory; +import school_project.Menu.MenuAcceuil; -import java.io.File; import java.io.IOException; public class Controller extends Application { - private Stage stage; + private static Stage stage; Parent root; public static Vec2 screen_size; @@ -36,14 +32,20 @@ public class Controller extends Application { stage.setFullScreenExitHint(""); primaryStage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH); - root = new GameUI(FileParserFactory.loadMapFromFile(new File(getClass().getResource("level11.level").getFile()))); + root = new MenuAcceuil(); - Scene scene = new Scene(root, screen_size.x, screen_size.y); - stage.setScene(scene); + switchRoot(root); stage.show(); } + + public static void switchRoot(Parent root){ + Scene scene = new Scene(root); + stage.setScene(scene); + } public static void main(String[] args) { - launch(); + launch(); } } + + diff --git a/app/src/main/java/school_project/Menu/MenuAcceuil.java b/app/src/main/java/school_project/Menu/MenuAcceuil.java new file mode 100644 index 0000000..9bb5bf4 --- /dev/null +++ b/app/src/main/java/school_project/Menu/MenuAcceuil.java @@ -0,0 +1,42 @@ +package school_project.Menu; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.layout.BorderPane; +import javafx.scene.paint.Color; +import javafx.scene.text.Font; +import school_project.Controller; +public class MenuAcceuil extends BorderPane { + + + public MenuAcceuil(){ + super(); + //create all the objet that i need + Button Play = new Button("Play"); + 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)); + SelectLevel.setOnAction(event -> Controller.switchRoot(new MenuLevel(1))); + getStyleClass().add("BorderPane"); + getStylesheets().add(String.valueOf(getClass().getResource("StyleMenuAcceuil.css"))); + + + + } + + + +} diff --git a/app/src/main/java/school_project/Menu/MenuLevel.java b/app/src/main/java/school_project/Menu/MenuLevel.java new file mode 100644 index 0000000..f86f699 --- /dev/null +++ b/app/src/main/java/school_project/Menu/MenuLevel.java @@ -0,0 +1,110 @@ +package school_project.Menu; + +import javafx.geometry.HPos; +import javafx.geometry.Insets; +import javafx.scene.control.Button; +import javafx.scene.layout.ColumnConstraints; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.RowConstraints; +import school_project.Controller; + +public class MenuLevel extends GridPane { + private int StartLevel; + public MenuLevel(int choose_day) { + + //create all Object that I need + RowConstraints[] Rows = new RowConstraints[5]; + ColumnConstraints[] Columns = new ColumnConstraints[3]; + Button[] Days = new Button[3]; + Button BckMenu = new Button("Back to menu"); + + BckMenu.setOnAction(event -> Controller.switchRoot(new MenuAcceuil())); + setHalignment(BckMenu,HPos.CENTER); + add(BckMenu,2,4); + + + for (int i = 0; i < Days.length; i++){ + Days[i] = new Button("Day"+(i+1)); + } + + //it's here that I know which day I can show on the screen + + if (choose_day == 1) { + StartLevel = 1; + add(Days[1],0,0); + add(Days[2],2,0); + setHalignment(Days[1], HPos.CENTER); + setHalignment(Days[2], HPos.CENTER); + } + + else if (choose_day == 2) { + StartLevel = 11; + add(Days[0], 0, 0); + add(Days[2], 2, 0); + setHalignment(Days[0], HPos.CENTER); + setHalignment(Days[2], HPos.CENTER); + } + + else if (choose_day == 3) { + StartLevel = 21; + add(Days[0], 0, 0); + add(Days[1], 2, 0); + setHalignment(Days[0], HPos.CENTER); + setHalignment(Days[1], HPos.CENTER); + } + + Days[0].setOnAction(event -> Controller.switchRoot(new MenuLevel(1))); + Days[1].setOnAction(event -> Controller.switchRoot(new MenuLevel(2))); + Days[2].setOnAction(event -> Controller.switchRoot(new MenuLevel(3))); + + //It's here that I put all buttons where I need (base on column not row) + for (int i = 0; i < 3; i++) { + for (int j = 1; j < 5; j++) { + if(i==0){ + Button Level = new Button("level "+(StartLevel)); + StartLevel+=3; + add(Level,i,j); + setHalignment(Level,HPos.CENTER); + if(j==4){ + StartLevel-=11; + } + } + else if(i==1&&j!=4) { + Button Level = new Button("level "+(StartLevel)); + StartLevel += 3; + add(Level, i, j); + setHalignment(Level,HPos.CENTER); + if (j == 3) { + StartLevel -=8; + + } + } + else if(i==2&&j!=4){ + Button Level = new Button("level "+(StartLevel)); + StartLevel+=3; + add(Level,i,j); + setHalignment(Level,HPos.CENTER); + } + } + } + + for(int i=0;i<=2;i++){ + Columns[i] = new ColumnConstraints(); + Columns[i].setPercentWidth(33); + getColumnConstraints().addAll(Columns[i]); + } + + for (int i= 0;i<=4;i++){ + Rows[i] = new RowConstraints(); + Rows[i].setPercentHeight(20); + getRowConstraints().addAll(Rows[i]); + } + + setHgap(20); + setVgap(20); + setPadding(new Insets(20,10,10,20)); + getStyleClass().add("GridPane"); + getStylesheets().add(String.valueOf(getClass().getResource("StyleMenuAcceuil.css"))); + } +} + diff --git a/app/src/main/resources/school_project/Menu/BackGround-menu.jpg b/app/src/main/resources/school_project/Menu/BackGround-menu.jpg new file mode 100644 index 0000000..b614a35 Binary files /dev/null and b/app/src/main/resources/school_project/Menu/BackGround-menu.jpg differ diff --git a/app/src/main/resources/school_project/Menu/Background-select-level.jpg b/app/src/main/resources/school_project/Menu/Background-select-level.jpg new file mode 100644 index 0000000..49f7f3f Binary files /dev/null and b/app/src/main/resources/school_project/Menu/Background-select-level.jpg differ diff --git a/app/src/main/resources/school_project/Menu/StyleMenuAcceuil.css b/app/src/main/resources/school_project/Menu/StyleMenuAcceuil.css new file mode 100644 index 0000000..1fb30c0 --- /dev/null +++ b/app/src/main/resources/school_project/Menu/StyleMenuAcceuil.css @@ -0,0 +1,8 @@ +.BorderPane{ + -fx-background-image: url("BackGround-menu.jpg"); + -fx-background-position:center; +} +.GridPane{ + -fx-background-image: url("Background-select-level.jpg"); + -fx-background-position:right; +} \ No newline at end of file