java - Libgdx 锁定宽高比到一定范围

标签 java libgdx window aspect-ratio

是否可以设置最小和最大纵横比? 比方说从 1:1 到 2.5:1。或者至少设置宽度和高度的最小值和最大值?

最佳答案

您可以使用 FitViewport 来保持固定的宽度和高度:

FitViewport 视口(viewport) = new FitViewport(SCREEN_WIDTH, SCREEN_HEIGHT, 相机);

如果您使用舞台来绘制所有 Actor ,那么您所需要做的就是在舞台上设置视口(viewport),如下所示:

stage.setViewport(viewport);

但是,如果您不使用舞台,那么您需要执行以下操作。如果您直接使用 SpriteBatch 绘图,您还需要设置一个 Camera:

SpriteBatch batch = new SpriteBatch();
OrthographicCamera camera = new OrthographicCamera(SCREEN_WIDTH, SCREEN_HEIGHT);
camera.setToOrtho(true);
//center the camera in the center of the screen
camera.position.set(SCREEN_WIDTH / 2f, SCREEN_HEIGHT / 2f, 0f);
//pass the camera to the third argument of the viewport
FitViewport viewport = new FitViewport(SCREEN_WIDTH, SCREEN_HEIGHT, camera);

然后渲染时需要在CameraSpriteBatch上设置投影矩阵:

@Override
public void render(float deltaTime) {
    camera.update();
    batch.setProjectionMatrix(camera.combined);

    // do all the rendering of textures and stuff

}

此外,每次调整屏幕大小时,您都需要更新视口(viewport):

@Override
public void resize(int width, int height) {
    viewport.update(width, height);
}

关于java - Libgdx 锁定宽高比到一定范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36212369/

相关文章:

java - 如何解决计数器不平衡和重叠方法的算法?

java - 如何根据x调整 Actor z索引?

java - 这个警告在 Vaadin : "Ignoring RPC call for disabled connector com.vaadin.ui.Window"? 中意味着什么

java - double 和 long 数的减法

java - 从 HTML 表中进行多重搜索

java - 如何从菜单切换到 3D FPS 设置? (libGDX)

仅当窗口尚不存在时 JavaScript window.open

java - Mockito 在 Spy 上使用 doAnswer

java - 在 Linux 上安装 Java EE SDK 时出现问题

Python Tkinter 顶层