gpt4 book ai didi

java - FitViewport 中的 LibGDX 背景图像

转载 作者:太空宇宙 更新时间:2023-11-03 13:53:21 24 4
gpt4 key购买 nike

所以,我正在为我即将推出的应用程序使用 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();

这就是我目前设置相机/视口(viewport)的方式。

然后我用 SpriteBatch 在上面画东西。

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

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

最佳答案

在我看来,最好的想法是创建第二个阶段,它自己的 Viewport 仅用于背景目的。第二个 Viewport 不应该是 FillViewport - 根据我的经验,它会拉伸(stretch)你的图形。我认为 ExtendViewport 在这种情况下更好。

那么它看起来应该如何:

    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 的更多信息:https://github.com/libgdx/libgdx/wiki/Viewports

关于java - FitViewport 中的 LibGDX 背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32552831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com