libgdx ios 横向不是全屏

libgdx ios landscape not fullscreen

我的应用程序有问题。在 iPhone 上(在 5c、5s、6 上测试)我的两边都有两条黑色条纹(在 android 上看起来一切正常)。 我该如何处理它们?

这是我的绘图代码

@Override
public void create () {

    mWidth = Gdx.graphics.getWidth();
    mHeight = Gdx.graphics.getHeight();
    mScale = Math.max(mWidth, mHeight) / 20f;

    backgroundTexture = new Texture(Gdx.files.internal("backBlue.png"));

    ShaderProgram.pedantic = false;

    backgroundShader = new ShaderProgram(VERT, FRAG);
    if (!backgroundShader.isCompiled()) {
        System.err.println(backgroundShader.getLog());
        System.exit(0);
    }
    if (backgroundShader.getLog().length()!=0)
        System.out.println(backgroundShader.getLog());

    backgroundBatch = new SpriteBatch(5, backgroundShader);
}


@Override
public void render () {
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    backgroundBatch.begin();
    backgroundBatch.draw(backgroundTexture, 0, 0, mWidth, mHeight);
    backgroundBatch.end();
    ...
}

@Override
public void resize (int width, int height) {
    mWidth = width;
    mHeight = height;
    mScale = Math.max(width, height) / 20f;

    backgroundShader.begin();
    backgroundShader.setUniformf("resolution", width, height);
    backgroundShader.end();
}

这可能是因为您正在使用的 viewport,它通常在构造函数或 create 方法中设置。

什么是viewport

基本上,viewport 是一个创建的对象,用于定义游戏在不同屏幕上的绘制方式。例如,假设您的相机设置为 480 x 800(像素)。如果您的游戏 运行 在不同比例的屏幕上显示,例如 iPhone 5 的屏幕为 1,136 × 640 像素,会发生什么情况?比赛应该延长吗?图像应该被裁剪吗?还是应该 libgdx 在两侧添加黑条以适合您使用的相机尺寸?此决定由您的相机正在使用的 viewport 做出。

简而言之就是这样。强烈建议在 wiki.

上阅读更多相关内容

此外,可以找到关于这个主题的很好的教程 here