web-dev-qa-db-ja.com

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());
}
14
user2570888

カメラを変更してウィンドウのサイズを変更することはできません。これらは2つの別個の概念です。

デスクトップアプリケーションのサイズは、メインメソッドのconfig lwjpgで設定します。 Androidアプリケーションはとにかく全画面表示です。

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

起動時にウィンドウサイズを指定できます。

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

また、次の方法でゲーム内で変更することもできます。

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

Stuntmaniaのようなifステートメントでこれを囲むことができます:

_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()を使用してください。ウィンドウがフルスクリーンモードの場合、ウィンドウがフルスクリーンモードだったモニターでウィンドウモードに切り替えられます。

ソース

10
Springrbua

デスクトッププロジェクトでこれを行う

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();
4