Подтвердить что ты не робот

Как изменить размер окна в формате libgdx?

Как изменить размер в libgdx-android-desktop? Я запутался в размере окна и не знаю, как решить эту проблему.

Итак, для окна рабочего стола я хочу 500x500, но с Android-обозревателем я хочу полный экран, поэтому я не могу его жестко кодировать. По какой-то причине ANDROID_WIDTH всегда равно 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());
}
4b9b3361

Ответ 1

Вы не можете изменить размер окон, изменив камеру. Это две отдельные концепции.

Вы устанавливаете размер на настольном приложении в своем основном методе через config lwjpg. Android-приложение в любом случае полноэкранное.

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

Ответ 2

Вы можете указать размер окна при запуске:

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

Вы также можете изменить его в своей игре, используя:

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

Вы можете окружить это утверждением if, как сказал stuntmania:

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: В LibGDX 1.8 метод Gdx.graphics.setDisplayMode был переименован в Gdx.graphics.setWindowedMode:

Изменение API: Graphics#setDisplayMode(int, int, boolean) было переименовано в   Graphics#setWindowedMode(int, int). Это НЕ позволит вам больше переключиться на полноэкранный режим,   вместо этого используйте Graphics#setFullscreenMode(). Если окно находится в полноэкранном режиме, это будет   переключился в оконный режим на мониторе, окно было в полноэкранном режиме.

(Источник)

Ответ 3

сделайте это в своем рабочем проекте

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

и в вашем основном классе

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

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