Java FitViewport中的LibGDX背景图像
所以,我正在为即将推出的应用程序使用LibGDX 我使用FitViewport来确保16:9的纵横比。 因此,其他纵横比超过16:9的玩家将在网站上设置黑条 绘制屏幕填充背景图像的最佳方法是什么,该图像还覆盖了黑色条所在的区域?Java FitViewport中的LibGDX背景图像,java,android,libgdx,Java,Android,Libgdx,所以,我正在为即将推出的应用程序使用LibGDX 我使用FitViewport来确保16:9的纵横比。 因此,其他纵横比超过16:9的玩家将在网站上设置黑条 绘制屏幕填充背景图像的最佳方法是什么,该图像还覆盖了黑色条所在的区域? camera = new OrthographicCamera(); viewport = new FitViewport(WIDTH, HEIGHT, camera); viewport.apply(); camera.position
camera = new OrthographicCamera();
viewport = new FitViewport(WIDTH, HEIGHT, camera);
viewport.apply();
camera.position.set(WIDTH / 2, HEIGHT / 2, 0);
camera.update();
这就是我当前设置相机/视口的方式
然后我用雪碧棒在上面画东西
Gdx.gl.glClearColor(1, 1, 1, 1);
这就是我目前至少将黑条颜色更改为任何RGB颜色的方式。在我看来,最好的办法是创建第二个阶段,它自己的
视口
仅用于背景目的。第二个视口
不应该是填充视口-它将根据我的经验拉伸您的图形。我认为在这种情况下,extendedviewport更好
那么它应该是什么样子:
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 );
现在只需在render方法中处理新阶段
backStage.act();
stage.act();
backStage.draw(); //backStage first - we want it under stage
stage.draw();
并在更新中更新新的视口
,或像旧视口一样进行渲染。就这些
阅读有关
视口的更多信息此处:无论是纹理还是精灵都不能作为演员添加到舞台上。不过,我仍然可以用ExtendViewport来做,谢谢。是的,但是有了新的图像(纹理);is@m.antkowicz你知道为什么第二个视口不应该是FillViewport吗?@祝你好运-因为fill视口正在拉伸图形,而且不同的显示具有不同的比率,结果可能是悲剧:)