我目前正在开发一款必须避开小行星的游戏。为了让游戏在每台设备上看起来都一样,我使用了FitViewport。不幸的是,我在某种程度上得到了顶部和底部的白色条,而不是黑色的。我的游戏背景也是白色的,所以看起来有点奇怪。
GameScreen:
t1
我将船拖入白色酒吧。
答案 0 :(得分:1)
LibGDX提供视口作为处理不同宽高比的更方便的方法。您不必将MyGdxGame.WIDTH与aspectRatio相乘。只需使用MyGdxGame.WIDTH和MyGdxGame.HEIGHT初始化它。
此外,在调整大小功能中,您可以使用视口值(而不是使用常量)更改凸轮位置:
{{1}}
答案 1 :(得分:0)
我在您的代码中发现了一些问题。对于使用不同屏幕比率处理时的最佳实践,请尝试使用fill viewPort。这里只是使用填充视口编辑代码。试试吧。
@Override
public void create()
{
float aspectRatio = (float)Gdx.graphics.getWidth() / (float)Gdx.graphics.getHeight();
camera = new OrthographicCamera();
camera.position.set(0, 0, 0);
camera.update();
//1280 is the screen width and 800 is screen height
camera.setToOrtho(false, 1280, 800);
viewPort = new FillViewport(1280, 800, camera);
}
@Override
public void render(SpriteBatch batch)
{
batch.setProjectionMatrix(camera.combined);
batch.begin();
em.render(batch); //render Ship and Asteroids
[...]
}
@Override
public void resize(int width, int height)
{
viewPort.update(width, height);
}
just try with the above code . it will definitely work