FitViewport 中的 LibGDX 背景图像

2024-03-12

因此,我将 LibGDX 用于我即将推出的应用程序。

我使用 FitViewport 来确保 16:9 的宽高比。 因此,使用 16:9 以外的其他宽高比的播放器会出现网站黑边。

绘制屏幕填充背景图像并覆盖黑条所在区域的最佳方法是什么?

    camera = new OrthographicCamera();
    viewport = new FitViewport(WIDTH, HEIGHT, camera);
    viewport.apply();
    camera.position.set(WIDTH / 2, HEIGHT / 2, 0);
    camera.update();

这就是我当前设置相机/视口的方式。

然后我用 SpriteBatch 在上面绘制东西。

Gdx.gl.glClearColor(1, 1, 1, 1);

这就是我目前至少将黑条的颜色更改为任何 RGB 颜色的方法。


在我看来,最好的想法是创建第二阶段并拥有自己的Viewport仅用于背景目的。这第二Viewport不应该是填充视口- 根据我的经验,它将扩展您的图形。我认为扩展视口在这种情况下更好。

那么它应该是什么样子:

    Stage stage, backStage;
    FitViewport viewport;
    ExtendViewport backViewport;

    ...

    stage = new Stage(); //this is your normal stage you have now
    stage.setViewport( yourFitViewport ); //here you are assingning fit viewport

    backViewport = new ExtendViewport( screenWidth, screenHeight );

    backStage = new Stage();
    backStage.setViewport( backViewport ); 

    ...
    //now add to backStage your background Image

    backStage.addActor( yourBackground );

现在只需处理渲染方法中的新阶段。

    backStage.act();
    stage.act();

    backStage.draw(); //backStage first - we want it under stage
    stage.draw();

并更新新的Viewport像旧的一样更新或渲染。就这样。

阅读更多关于Viewports here: https://github.com/libgdx/libgdx/wiki/Viewports https://github.com/libgdx/libgdx/wiki/Viewports

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FitViewport 中的 LibGDX 背景图像 的相关文章

随机推荐