我目前正在使用Libgdx库制作游戏,但是遇到了一个小问题。
我已经在桌面项目的Main.java类中禁用了调整大小的能力。
LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
cfg.resizable = false;
我想知道是否有一种简单的方法可以在保持宽高比的情况下调整窗口大小(就像按下Shift+调整大小时一样)。 我有哪些选择? :)
我目前正在使用Libgdx库制作游戏,但是遇到了一个小问题。
我已经在桌面项目的Main.java类中禁用了调整大小的能力。
LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
cfg.resizable = false;
该示例还使用一个固定的舞台大小,在两侧使用“黑色条纹”,这次使用glViewport。首先,将800x480的舞台大小缩放以适合屏幕大小,使用Scaling类得出结果,该结果用于配置glViewport,从而更改OpenGL将使用的屏幕的哪个部分。最后,setViewport传递视口位置和大小。结果与上一个示例相同,舞台必要时具有“黑色条纹”以保持宽高比,但绘图不能发生在视口之外。
public void resize (int width, int height) {
Vector2 size = Scaling.fit.apply(800, 480, width, height);
int viewportX = (int)(width - size.x) / 2;
int viewportY = (int)(height - size.y) / 2;
int viewportWidth = (int)size.x;
int viewportHeight = (int)size.y;
Gdx.gl.glViewport(viewportX, viewportY, viewportWidth, viewportHeight);
stage.setViewport(800, 480, true, viewportX, viewportY, viewportWidth, viewportHeight);
}
致意