Funkcja ta nie zapewnia zachowania proporcji ani nawet tego, co myślisz. Po prostu wyłącza możliwość zmiany rozmiaru ekranu w aplikacji komputerowej.
Proszę spojrzeć na wiki libGDX w szczególności na stronę Scene2D. Spójrz na rzeczy ze stołu montażowego Viewport. Wyjaśniono, w jaki sposób zachować współczynnik proporcji z bieżącym libGDX. Istnieją tutoriale, które wyjaśniają inny sposób za pomocą rozdzielczości wirtualnej i metody zmiany rozmiaru ekranu. Jest przestarzały!
z wiki
tym przykładzie wykorzystano również stały rozmiar sceny z „czarnych pasów” na obu boku, tym razem przy użyciu glViewport. Najpierw rozmiar stołu montażowego o wymiarach 800x480 to skalowany w celu dopasowania do rozmiaru ekranu za pomocą klasy Skalowanie. Wynikiem jest używany do konfiguracji glViewport, który zmienia część ekranu OpenGL, która będzie używana. Wreszcie, setViewport jest przekazywany w pozycji rzutni i wielkości. Wynik jest taki sam, jak w ostatnim przykładzie, etap ma "czarne paski", jeśli jest to konieczne, aby zachować proporcje, ale nie można uzyskać rysunku poza obszarem wyświetlania.
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);
}
pozdrowienia