libGDX-FitViewport正在拉伸舞台
我正在创建一个游戏,当我调整窗口大小时,我不希望屏幕被拉伸(当然,只有当它可以放入窗口时)。我正在使用带有libGDX-FitViewport正在拉伸舞台,libgdx,resize,viewport,stage,Libgdx,Resize,Viewport,Stage,我正在创建一个游戏,当我调整窗口大小时,我不希望屏幕被拉伸(当然,只有当它可以放入窗口时)。我正在使用带有FitViewport的Stage对象,但当我调整窗口大小时,其上的元素也在调整大小。我做错了什么 这是我的屏幕课程: public class SplashScreen implements Screen{ private final PuzzleGame app; private Stage stage; private Image splashImage;
FitViewport
的Stage
对象,但当我调整窗口大小时,其上的元素也在调整大小。我做错了什么
这是我的屏幕课程:
public class SplashScreen implements Screen{
private final PuzzleGame app;
private Stage stage;
private Image splashImage;
public SplashScreen(final PuzzleGame app) {
this.app = app;
this.stage = new Stage(new FitViewport(PuzzleGame.V_WIDTH, PuzzleGame.V_HEIGHT, app.camera));
Gdx.input.setInputProcessor(stage);
Texture splashTex = new Texture(Gdx.files.internal("img/splash.png"));
splashImage = new Image(splashTex);
splashImage.setPosition(stage.getWidth() / 2, stage.getHeight() / 2);
stage.addActor(splashImage);
}
@Override
public void show() {
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(.25f, .25f, .25f, 1f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
update(delta);
stage.draw();
}
private void update(float delta) {
stage.act(delta);
}
@Override
public void resize(int width, int height) {
stage.getViewport().update(width, height, false);
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void hide() {
}
@Override
public void dispose() {
stage.dispose();
}
}
正如Tenfour04已经指出的,您正在寻找
ScreenViewport
您可能想签出,然后重新阅读
基本上,有两种不同类型的视口:摄影机视口和OpenGL视口
FitViewport
保持摄影机视口不变,但向上或向下缩放OpenGL视口。结果将是,所有大小都将看起来更大或更小,这取决于OpenGL视口相对于摄影机视口的大小
另一方面,
ScreenViewport
将摄影机视口和OpenGL视口保持在相同的大小,这将导致元素始终具有相同的大小。正如Tenfour04已经指出的,您正在寻找ScreenViewport
您可能想签出,然后重新阅读
基本上,有两种不同类型的视口:摄影机视口和OpenGL视口
FitViewport
保持摄影机视口不变,但向上或向下缩放OpenGL视口。结果将是,所有大小都将看起来更大或更小,这取决于OpenGL视口相对于摄影机视口的大小
ScreenViewport
另一方面,将摄影机视口和OpenGL视口保持在相同的大小,这将导致元素始终具有相同的大小。调整大小时不缩放舞台的唯一视口类是ScreenViewport。其余的都应该进行缩放,以便您的虚拟分辨率始终与窗口大小匹配。只有ScreenViewport类在调整大小时不缩放舞台。其余的都应该进行缩放,以便您的虚拟分辨率始终与窗口大小匹配。