首页 > 解决方案 > 应用程序屏幕大小不一致

问题描述

问题是我的应用程序大小不一致。有时应用程序的大小与我在代码中定义的一样,但大多数时候它只是我屏幕上的一小部分。我正在使用 kubuntu 和 Intelij。我认为这可能是我的系统设置或 Intelij 的问题。所以也许有人有类似的经历,可以给一些建议如何解决这个问题。下面是我的应用程序代码和我的问题的图片。

你可以看看它应该是什么样子

大多数时候我的应用程序都是这样打开的

import com.almasb.fxgl.app.GameApplication;
import com.almasb.fxgl.app.GameSettings;
import com.almasb.fxgl.dsl.FXGL;
import com.almasb.fxgl.entity.Entity;
import com.almasb.fxgl.input.Input;
import com.almasb.fxgl.input.UserAction;
import javafx.scene.input.KeyCode;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Text;
import java.util.Map;

public class main extends GameApplication {
    @Override
    protected void initSettings(GameSettings settings) {
        settings.setWidth(600);
        settings.setHeight(600);
        settings.setTitle("Basic Game App");
        settings.setVersion("0.1");
        settings.setFullScreenAllowed(true);
    }

    @Override
    protected void initInput() {
        Input input = FXGL.getInput();

        input.addAction(new UserAction("Move Right") {
            @Override
            protected void onAction() {
                player.translateX(5); // move right 5 pixels
                FXGL.getGameState().increment("pixelsMoved", +5);
            }
        }, KeyCode.D);

        input.addAction(new UserAction("Move Left") {
            @Override
            protected void onAction() {
                player.translateX(-5); // move left 5 pixels
                FXGL.getGameState().increment("pixelsMoved", +5);
            }
        }, KeyCode.A);



        input.addAction(new UserAction("Move Down") {
            @Override
            protected void onAction() {
                player.translateY(5); // move down 5 pixels
                FXGL.getGameState().increment("pixelsMoved", +5);
            }
        }, KeyCode.S);
    }

    @Override
    protected void initGameVars(Map<String, Object> vars) {
        vars.put("pixelsMoved", 0);
    }

    private Entity player;

    @Override
    protected void initGame() {
        player = FXGL.entityBuilder()
                .at(0, 0)
                .view(new Rectangle(25, 25, Color.BLUE))
                .buildAndAttach();
    }



    public static void main(String[] args) {
        launch(args);
    }
}

标签: javajavafxfxgl

解决方案


推荐阅读