0

すべての Android 画面に合うように、Libgdx に付属のサイズ変更機能を埋めようとしています。

私がこれまで見てきた最善の解決策は、このチュートリアルです: http://www.java-gaming.org/index.php?topic=25685.0しかし、Galaxy S3 で実行すると、ボタンが非常に小さく、全体的に全体的に表示されます。ゲームは小さく、デスクトップ版では大きく、私が望んでいる方法です。現在のサイズ変更コードは次のとおりです。

@Override
public void resize(int width, int height) {
    float aspectRatio = (float)width/(float)height;
    float scale = 2f;
    Vector2 crop = new Vector2(0f, 0f); 
    if(aspectRatio > ASPECT_RATIO)
    {
        scale = (float)height/(float)VIRTUAL_HEIGHT;
        crop.x = (width - VIRTUAL_WIDTH*scale)/2f;
    }
    else if(aspectRatio < ASPECT_RATIO)
    {
        scale = (float)width/(float)VIRTUAL_WIDTH;
        crop.y = (height - VIRTUAL_HEIGHT*scale)/2f;
    }
    else
    {
        scale = (float)width/(float)VIRTUAL_WIDTH;
    }

    float w = (float)VIRTUAL_WIDTH*scale;
    float h = (float)VIRTUAL_HEIGHT*scale;
    viewport = new Rectangle(crop.x, crop.y, w, h);
}

私のレンダリングコードは次のとおりです。

@Override
public void render() {
    // update camera
    camera.update();

    // set viewport
    Gdx.gl.glViewport((int) viewport.x, (int) viewport.y,
                      (int) viewport.width, (int) viewport.height);

    // clear previous frame
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    ScreenManager.updateScreen();

    sb.begin();
    ScreenManager.renderScreen(sb);
    sb.end();
}

そして、私の変数は次のとおりです。

private static final int VIRTUAL_WIDTH = 600;
private static final int VIRTUAL_HEIGHT = 800;
private static final float ASPECT_RATIO = (float)VIRTUAL_WIDTH/(float)VIRTUAL_HEIGHT;

public static BitmapFont FONT;

private OrthographicCamera camera;
private Rectangle viewport;
private SpriteBatch sb;

私が言ったように、デスクトップ版を実行すると問題なく動作しますが、Galaxy S3 (画面の薄さ: 1,280 x 720) で実行すると、ゲームが大幅に縮小され、ゲームの上部と側面がトリミングされます。これは私がまったく望んでいるものではありません。

4

0 に答える 0