How to change libgdx different window size?

廉价感情. 提交于 2019-12-23 06:58:31

问题


How to change size in libgdx-android-desktop? I am confuse on window sizeing and not sure how to solve this problem.

So for desktop window i want 500x500 but with android i want full screen so i cant hard code it.
For some reason ANDROID_WIDTH is always equal to WINDOW_WIDTH.

 int WINDOW_WIDTH = 500;
 int WINDOW_WIDTH = 500;

public void create() {
    if (Gdx.app.getType() == ApplicationType.Android) {
        int ANDROID_WIDTH = Gdx.graphics.getWidth();
        int ANDROID_HEIGHT = Gdx.graphics.getHeight();
        camera = new OrthographicCamera(ANDROID_WIDTH, ANDROID_HEIGHT);
        camera.translate(ANDROID_WIDTH/2, ANDROID_HEIGHT/2);
        camera.update();
    } else {
        camera = new OrthographicCamera(WINDOW_WIDTH, WINDOW_HEIGHT);
        camera.translate(WINDOW_WIDTH / 2, WINDOW_HEIGHT / 2);
        camera.update();
    }

    Gdx.input.setInputProcessor(new GameInputProcessor());
}

回答1:


You cannot change the size of the windows by changing the camera. They are two separate concepts.

You set the size on desktop application in your main method through config lwjpg . Android application is full screen anyway.

LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
cfg.title = "Title";
cfg.useGL20 = true;
cfg.height = 640;
cfg.width = 360;
new LwjglApplication(new MyGame(), cfg);



回答2:


You can give the Window size on Startup:

new LwjglApplication(yourApplicationListener(), "Title", 500, 500, true/false (useGL2));

You can also Change it in your game using:

Gdx.graphics.setDisplayMode(500, 500, true/false (fullscreen));

You can surround this by an if Statement like stuntmania said:

if (Gdx.app.getType().equals(ApplicationType.Android)) {
    Gdx.graphics.setDisplayMode(500, 500, false);
} else {
    Gdx.graphics.setDisplayMode(Gdx.graphics.getWidth(),Gdx.graphics.getHeight(), true);
}

EDIT: In LibGDX 1.8 the Method Gdx.graphics.setDisplayMode has been renamed to Gdx.graphics.setWindowedMode:

API Change: Graphics#setDisplayMode(int, int, boolean) has been renamed to Graphics#setWindowedMode(int, int). This will NOT allow you to switch to fullscreen anymore, use Graphics#setFullscreenMode() instead. If the window is in fullscreen mode, it will be switched to windowed mode on the monitor the window was in fullscreen mode on.

(Source)




回答3:


do this in your desktop project

cfg.width=500;
cfg.height=500;

and in your main class

int ANDROID_WIDTH = Gdx.graphics.getWidth();
int ANDROID_HEIGHT = Gdx.graphics.getHeight();

camera = new OrthographicCamera();
camera.setToOrtho(false, ANDROID_WIDTH, ANDROID_HEIGHT);
camera.update();


来源:https://stackoverflow.com/questions/21079122/how-to-change-libgdx-different-window-size

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!