2013-08-28 82 views
7

我目前正在使用Libgdx庫製作遊戲,並且目前遇到了一個小障礙。Libgdx窗口大小調整:保持長寬比

我在桌面項目的Main.java類中禁用了當前調整大小的功能。

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

我想知道是否有一個簡單的方法來使窗口調整大小,同時保持縱橫比。 (就像當你移動+調整大小時)

我的選擇是什麼? :)

回答

2

該功能不能讓您保持寬高比或甚至是您所想的東西。它只是禁用了在桌面應用程序中調整屏幕大小的功能。

請看看libGDX wiki,特別是Scene2D頁面。 看看舞臺上的東西視域。它解釋了你如何保持與當前libGDX的縱橫比。那裏有一些教程,他們通過虛擬分辨率和屏幕調整大小的方法來解釋不同的方式。它是過時的!

從維基

這個例子還在任 側使用與「黑條」的固定階段大小,這次使用glViewport。首先,使用縮放類縮放以適合屏幕尺寸的800x480的舞臺尺寸爲 。結果是 用於配置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); 
} 

問候

相關問題