Это довольно легко. Вы в основном строите всю свою программу для собственного разрешения, но во всем, что касается позиционирования и изменения размеров текстур, есть что-то вроде этого:
private void resize()
{
float x = Gdx.graphics.getWidth();
float y = Gdx.graphics.getHeight();
float changeX = x / assumeX; //being your screen size that you're developing with
float changeY = y / assumeY;
position = new Vector2(position.x * changeX, position.y * changeY);
width = startWidth * changeX;
height = startHeight * changeY;
bounds = new Vector2 (position.x, (Gdx.graphics.getHeight() - position.y) - height);
}
По сути, вы берете каждый сгенерированный объект и пропускаете его через что-то, что увеличивается / уменьшается в зависимости от изменения значений x / y в вашем разрешении. Чем дальше от родного, тем больше будет. Когда вы проверяете что-то где-то или помещаете что-то куда-либо, всегда кодируйте его как желаемое разрешение, но пропустите его через функцию изменения размера, прежде чем отобразить это или позволить взаимодействовать с остальной частью вашей программы.