【问题标题】:LibGdx - How can I resize my game window while keeping the aspect ratio?LibGdx - 如何在保持纵横比的同时调整游戏窗口的大小?
【发布时间】:2021-12-09 12:07:25
【问题描述】:

现在,我正在尝试编写一些代码,以便在使用鼠标调整窗口大小时,它会保持 16:9 的纵横比。我想在我的桌面启动器中包含此代码(我只编译到桌面),但如果必须的话,我也可以在我的游戏文件中使用public void resize() 执行它。我正在使用 Libgdx 3,所以我不能使用像 cfg.height 这样的东西,但我很好奇我是否可以使用 config.setWindowSizeLimits() 来做到这一点,并在必要时更改边界。如果我遗漏了一些东西,并且实际上有一种方法可以在桌面启动器中获取窗口的尺寸,这将是非常好的了解。

【问题讨论】:

  • 您使用的是哪种布局?
  • 现在我正在使用 FitViewport,但我仍然可以更改它。我现在有点过了我最初的想法,但有一个答案仍然很好。为了清楚起见,我想控制窗口的比例,而不是里面的内容。
  • 另外,对于将来可能有帮助的人,我发现您可以使用 Lwjgl3ApplicationConfiguration.getDisplayMode().refreshRate; 获取当前显示器的高度、宽度和刷新率,其中可以更改 refreshRate 以获得您想要的需要。

标签: java libgdx screen-resolution aspect-ratio


【解决方案1】:

您可以使用FitViewport。这不会修复窗口本身的比例,但会修复keeps the aspect ratio by scaling the world up to fit the screen, adding black bars (letterboxing) for the remaining space

你可以这样使用它:

public void initializeCameraAndViewport() {
    camera = new OrthographicCamera();
    viewport = new FitViewport(SCENE_WIDTH, SCENE_HEIGHT, camera);
}

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

它会使屏幕看起来像这样:

有关视口的更详细说明,请参阅the libgdx wiki

【讨论】:

    猜你喜欢
    • 2013-09-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    相关资源
    最近更新 更多