2
这里是我的问题。我试图用LibGDX渲染一个纹理,它的位置和宽度都与屏幕大小有关。以下是我如何做到的:LibGDX spritebatch调整相对于屏幕尺寸
public void render(float delta) {
Gdx.gl.glClearColor(1, 0, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(logo.getKeyFrame(frame), (Gdx.graphics.getWidth()/2) - (logo.getKeyFrame(frame).getRegionWidth()/2), Gdx.graphics.getHeight() - logo.getKeyFrame(frame).getRegionHeight());
batch.end();
stage.act(delta);
stage.draw();
}
@Override
public void resize(int width, int height) {
stage.getViewport().update(width, height, true);
}
问题是,当我尝试调整窗口大小时,图像不会呈现在应该出现的位置。有没有什么办法解决这一问题?
谢谢:)
也许尝试制作宽度和高度变量,并将它们设置为它们在'resize()'中的新值。然后使用这些变量来设置图像的大小。 – vedi0boy 2015-02-06 16:21:14
@ vedi0boy我只是试过,没有任何改变。我应该使用getRegionWidth()来获取图像的宽度? – Ferdz 2015-02-06 16:39:58
我使用LibGDX很多,我从来没有遇到过这个问题,因为我使用'OrthographicCamera'和'StretchViewport',它的工作方式完全符合我向您展示的方式。如果您有兴趣了解更多信息,请告诉我,我会告诉您如何设置它,以便您的屏幕能够完美地在'resize()'上展开。 – vedi0boy 2015-02-06 18:20:14