【问题标题】:libgdx ios landscape not fullscreenlibgdx ios横向不是全屏
【发布时间】:2015-04-17 07:19:44
【问题描述】:

我的应用程序有问题。在 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();
}

【问题讨论】:

    标签: java ios libgdx robovm


    【解决方案1】:

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

    什么是viewport

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

    简而言之就是这样。强烈建议在wiki 上阅读更多相关信息。

    此外,可以在here 找到有关此主题的好教程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-07
      • 1970-01-01
      • 2012-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      相关资源
      最近更新 更多