【问题标题】:Libgdx background image not fittingLibgdx 背景图像不合适
【发布时间】:2018-04-18 01:20:39
【问题描述】:

我正在开发一款具有 480x800 虚拟屏幕尺寸的游戏。我还使用TiledMapRenderer 渲染我的地图。我的问题是将背景和 HUD 元素安装到屏幕中,其比例不同于 480/800(通常是更高的设备)。某些设备在屏幕底部显示空白区域。

//my viewport (WIDTH = 480, HEIGHT = 800)
viewport = new ScalingViewport(Scaling.fillX,MyGdxGame.WIDTH,MyGdxGame.HEIGHT,camera);

@Override
public void resize(int width, int height) {
    viewport.update(width, height, true);
    camera.position.set(camera.viewportWidth / 2, camera.viewportHeight / 2, 0);
    barriers.getRenderer().setProjectionMatrix(viewport.getCamera().combined);
    shapeRenderer.setProjectionMatrix(viewport.getCamera().combined);
}

我的屏幕应该适合 X,但背景图像应该适合 X 和 Y,而不改变纵横比。在这种情况下,ScalingViewport 并不能解决我的问题,如果我更改视口,我必须从头开始编写所有代码。

 @Override
    public void render(float delta) {
        update(delta);
        SpriteBatch sb = game.batch;
        Gdx.gl.glClearColor(46f/255,46f/255,46f/255,1f);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        sb.setProjectionMatrix(camera.combined);
        sb.begin();
    //this has to change in somehow
    sb.draw(AssetManager.backgroundMenu,0,0,MyGdxGame.WIDTH,MyGdxGame.HEIGHT);
        sb.end();
     }

我应该使用多个视口吗?或者有什么办法让我的背景适合屏幕?顺便说一句,如果有办法,我不想更换我的相机。

【问题讨论】:

    标签: java android libgdx


    【解决方案1】:

    是的,您应该为 HUD 元素使用第二个视口。

    我会推荐使用ExtendViewport

    ExtendViewport viewport = new ExtendViewport(MyGdxGame.WIDTH,MyGdxGame.HEIGHT);
    

    它填满整个屏幕(没有黑条)并保持所有分辨率的纵横比。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-19
      • 1970-01-01
      • 2012-01-02
      • 2016-10-27
      • 2021-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多