I'm having a problem with fitting my game on different screens. I declared a viewport width and height in my stage class.
public static final int VIEWPORT_WIDTH = 20;
public static final int VIEWPORT_HEIGHT = 30;
And i set up the camera
camera = new OrthographicCamera(VIEWPORT_WIDTH, VIEWPORT_HEIGHT);
camera.position.set(camera.viewportWidth/2, camera.viewportHeight/2, 0f);
And i set the screen width and height in desktop app to this
public static final int APP_WIDTH = 800;
public static final int APP_HEIGHT = 900;
On desktop everything looks fine but on my android device it looks stretched upwards. I read the documentation about viewports but how can I implement it here using these variables? I know similar questions have been asked but I would like to know viewports can be implemented using these specific variables, that way I might understand it better.
You probably want to use an ExtendViewport
. This extends the world 1 way to fill the entire screen.
your code would look something like this:
private Viewport viewport;
private Camera camera;
public void create() {
camera = new OrthographicCamera();
viewport = new ExtendViewport(VIEWPORT_WIDTH , VIEWPORT_HEIGHT, camera);
}
public void resize(int width, int height) {
viewport.update(width, height);
}
Read more here: https://github.com/libgdx/libgdx/wiki/Viewports#extendviewport