【问题标题】:Libgdx Window Resizing: Keeping Aspect RatioLibgdx 窗口大小调整:保持纵横比
【发布时间】:2013-09-01 00:04:40
【问题描述】:

我目前正在使用 Libgdx 库制作游戏,目前遇到了一个小障碍。

我在桌面项目的 Main.java 类中禁用了当前调整大小的功能。

LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
    cfg.resizable = false;

我想知道是否有一种简单的方法可以在保持纵横比的同时调整窗口大小。 (比如当你 shift+resize 时)

我有哪些选择? :)

【问题讨论】:

    标签: java libgdx desktop-application


    【解决方案1】:

    该功能无法让您保持纵横比,甚至无法保持您的想法。它只是禁用了在桌面应用程序上调整屏幕大小的可能性。

    请查看 libGDX wiki 尤其是 Scene2D 页面。 看看舞台上的 Viewport 内容。它解释了如何保持当前 libGDX 的纵横比。有一些教程在虚拟分辨率和屏幕调整大小方法的帮助下解释了不同的方式。已经过时了!

    来自维基

    这个例子也使用了一个固定的舞台尺寸,在任何一个上都带有“黑条” 侧面,这次使用 glViewport。首先 800x480 的舞台大小是 使用 Scaling 类缩放以适应屏幕大小。结果是 用于配置glViewport,改变屏幕的哪个部分 OpenGL 将使用。最后,将 setViewport 传递给视口位置 和大小。结果和上一个例子一样,stage有 “黑条”是必要的,以保持纵横比,但没有绘图可以 发生在视口之外。

    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);
    }
    

    问候

    【讨论】:

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