我正在使用JavaFX从事教育克朗代克游戏项目。 我要做的是创建整个游戏的动态缩放。
我使用了scale类来这样做。它似乎差不多好,因为它改变了所有界面元素的比例,除了背景之外,它比实际窗口小一点。
我已经尝试使用BackgroundSize进行操作,但它没有做任何更改。我该如何解决?
非常感谢你的帮助!
我添加图片以显示问题:
public class Klondike extends Application {
private static final double WINDOW_WIDTH = 1400;
private static final double WINDOW_HEIGHT = 900;
Button changeThemeButton;
Button newGame;
Button undo;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
startGame(primaryStage);
}
public void startGame(Stage primaryStage){
Card.loadCardImages();
Game game = new Game();
game.setTableBackground(new Image(Common.loadThemeSettings().get(0)));
initializeButtons(game, primaryStage);
primaryStage.setTitle("Klondike Solitaire");
primaryStage.setScene(new Scene(game, WINDOW_WIDTH, WINDOW_HEIGHT));
// SCALLING:
Scale scale = new Scale(1, 1);
scale.xProperty().bind(game.widthProperty().divide(WINDOW_WIDTH));
scale.yProperty().bind(game.heightProperty().divide(WINDOW_HEIGHT));
game.getTransforms().add(scale);
primaryStage.setResizable(true);
// SCALLING END:
primaryStage.show();
}
背景图片:
public void setTableBackground(Image tableBackground) {
setBackground(new Background(new BackgroundImage(tableBackground,
BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT,
BackgroundPosition.CENTER, BackgroundSize.DEFAULT)));
}