Pantalla central no entre barras negras

Como estaba tratando de adaptar mi juego a diferentes resoluciones de dispositivos, tuve un problema al ajustar la pantalla del juego entre las "barras negras". En mi caso, estoy usando la class FitViewport de la biblioteca LibGdx para agregar las barras negras para mí. Todo funciona bien y las barras negras (una barra en mi caso) se crean efectivamente cuando es necesario. Mi problema, sin embargo, es que mi pantalla no está cinput y termino con una fea barra negra en la parte superior, inferior, derecha o izquierda de mi juego. Por ejemplo:

enter image description here

¿Cómo puedo arreglar esto para que se vea así? enter image description here

Aquí está mi código:

 public class NordicMadness extends Game implements ApplicationListener{ private Camera camera; public static FitViewport viewport; @Override public void create () { camera = new PerspectiveCamera(); viewport = new FitViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), camera); AssetLoader.loadAssets(); setScreen(new SplashScreen(this)); System.out.println(Gdx.graphics.getWidth() + ", " + Gdx.graphics.getHeight()); } @Override public void dispose(){ super.dispose(); AssetLoader.dispose(); } @Override public void resize(int width, int height) { // All resizing shall be done in main Game class viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getWidth(), true); } } 

La API de libgdx establece que agregar true al tercer argumento de viewport.update(width, height, boolean center) debería hacer el trabajo, pero no está funcionando en mi caso.

Después de esto intenté hacer lo siguiente, pero sin éxito:

 public void resize(int width, int height) { // All resizing shall be done in main Game class ScalingViewport scalingViewport = (ScalingViewport)viewport; float leftGutterWidth = scalingViewport.getTopGutterHeight(); viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getWidth()); // Resize screen camera.position.set(0, Gdx.graphics.getHeight() - (leftGutterWidth / 2), 0); } 

Nunca he usado una window gráfica sin un escenario, pero replace el ancho y el alto con las llamadas a Gdx.Graphics.getHeight / getWidth que está utilizando causa el mismo comportamiento que está experimentando. Eliminar esas llamadas y usar los valores pasados ​​debería solucionar su problema.

 public void resize(int width, int height){ stage.getViewport().update(width, height, true); } 

Puede encontrar esto útil. https://github.com/libgdx/libgdx/wiki/Viewports