Skip to content

Commit ec4c1a5

Browse files
committed
Go Fullscreen if user press F
1 parent 08dd882 commit ec4c1a5

File tree

1 file changed

+30
-16
lines changed

1 file changed

+30
-16
lines changed

src/main/java/game2048/Game2048.java

+30-16
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import javafx.application.Platform;
66
import javafx.scene.Cursor;
77
import javafx.scene.Scene;
8+
import javafx.scene.input.KeyCode;
89
import javafx.stage.Screen;
910
import javafx.stage.Stage;
1011

@@ -42,17 +43,42 @@ public void start(Stage primaryStage) {
4243
root = new GamePane();
4344

4445
var scene = new Scene(root);
45-
scene.getStylesheets().add(Game2048.class.getResource("game.css").toExternalForm());
46+
scene.getStylesheets().add(getClass().getResource("game.css").toExternalForm());
4647

47-
if (isARMDevice()) {
48+
setGameBounds(primaryStage, scene);
49+
setEnhancedDeviceSettings(primaryStage, scene);
50+
setQuitListener(primaryStage);
51+
52+
primaryStage.show();
53+
root.requestFocus();
54+
}
55+
56+
private void setQuitListener(Stage primaryStage) {
57+
primaryStage.setOnCloseRequest(t -> {
58+
t.consume();
59+
root.getGameManager().quitGame();
60+
});
61+
}
62+
63+
private void setEnhancedDeviceSettings(Stage primaryStage, Scene scene) {
64+
var isARM = System.getProperty("os.arch").toUpperCase().contains("ARM");
65+
if (isARM) {
4866
primaryStage.setFullScreen(true);
4967
primaryStage.setFullScreenExitHint("");
68+
} else {
69+
root.setOnKeyPressed(ke -> {
70+
if (ke.getCode().equals(KeyCode.F)) {
71+
primaryStage.setFullScreen(true);
72+
}
73+
});
5074
}
5175

5276
if (Platform.isSupported(ConditionalFeature.INPUT_TOUCH)) {
5377
scene.setCursor(Cursor.NONE);
5478
}
79+
}
5580

81+
private void setGameBounds(Stage primaryStage, Scene scene) {
5682
var gameBounds = root.getGameManager().getLayoutBounds();
5783
int MARGIN = GamePane.getMargin();
5884
var visualBounds = Screen.getPrimary().getVisualBounds();
@@ -62,20 +88,8 @@ public void start(Stage primaryStage) {
6288
primaryStage.setScene(scene);
6389
primaryStage.setMinWidth(gameBounds.getWidth() / 2d);
6490
primaryStage.setMinHeight(gameBounds.getHeight() / 2d);
65-
primaryStage.setWidth((gameBounds.getWidth() + MARGIN) * factor);
66-
primaryStage.setHeight((gameBounds.getHeight() + MARGIN) * factor);
67-
68-
primaryStage.setOnCloseRequest(t -> {
69-
t.consume();
70-
root.getGameManager().quitGame();
71-
});
72-
primaryStage.show();
73-
74-
root.requestFocus();
75-
}
76-
77-
private boolean isARMDevice() {
78-
return System.getProperty("os.arch").toUpperCase().contains("ARM");
91+
primaryStage.setWidth(((gameBounds.getWidth() + MARGIN) * factor) / 1.5d);
92+
primaryStage.setHeight(((gameBounds.getHeight() + MARGIN) * factor) / 1.5d);
7993
}
8094

8195
@Override

0 commit comments

Comments
 (0)