First Controller prototype
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing

The goal it that for each window "type" there is a subclass of Parrent
and we can dynamicly switch between each scene with a fonction

This first commit is to see the structure for other to work on it. the
goal will be to make it dynamic. at the moment you have to switch the
gameState Variable with the window you would like to load.
This commit is contained in:
Debucquoy 2023-04-22 17:08:19 +02:00
parent 9711be3665
commit cb4811b339
Signed by: tonitch
GPG Key ID: A78D6421F083D42E
4 changed files with 43 additions and 9 deletions

View File

@ -4,25 +4,33 @@
package school_project; package school_project;
import javafx.application.Application; import javafx.application.Application;
import javafx.scene.Group; import javafx.scene.Parent;
import javafx.scene.Scene; import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage; import javafx.stage.Stage;
import school_project.States.GameMain;
import school_project.States.GameMenu;
import school_project.States.GameState;
public class Controller extends Application { public class Controller extends Application {
public final static String PROGRAM_NAME = "Road to Master";
private Parent root;
private GameState gameState = GameState.InMenu;
@Override @Override
public void start(Stage primaryStage) throws Exception { public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("test"); primaryStage.setTitle(PROGRAM_NAME);
Button btn = new Button("test");
btn.setOnAction(event -> System.out.println("hey"));
Group root = new Group(); switch (gameState){
root.getChildren().add(btn); case InMenu:
root = new GameMenu();
break;
case InGame:
root = new GameMain();
break;
}
Scene scene = new Scene(root, 300,300); Scene scene = new Scene(root);
primaryStage.setScene(scene); primaryStage.setScene(scene);
primaryStage.show(); primaryStage.show();
} }

View File

@ -0,0 +1,8 @@
package school_project.States;
import javafx.scene.layout.BorderPane;
public class GameMain extends BorderPane {
}

View File

@ -0,0 +1,12 @@
package school_project.States;
import javafx.scene.layout.GridPane;
import javafx.scene.text.Text;
public class GameMenu extends GridPane {
Text txt = new Text("Here come the menu");
public GameMenu() {
super();
add(txt, 0, 0);
}
}

View File

@ -0,0 +1,6 @@
package school_project.States;
public enum GameState {
InMenu,
InGame
}