Возможно ли установить минимальное и максимальное соотношение сторон? Скажем, от 1: 1 до 2,5: 1. Или, по крайней мере, установить min и max для ширины и высоты?Соотношение сторон блокировки Libgdx до определенного диапазона
1
A
ответ
0
Вы можете использовать FitViewport поддерживать фиксированную ширину и высоту:
FitViewport viewport = new FitViewport(SCREEN_WIDTH, SCREEN_HEIGHT, camera);
Если вы используете Stage
сделать все актеры, то все, что вам нужно сделать, это установить видовой экран на сцене как это:
stage.setViewport(viewport);
Однако, если вы не используете этап, то вам необходимо сделать следующее. Если вы рисуете непосредственно с SpriteBatch
вам нужно будет настроить Camera
тоже:
SpriteBatch batch = new SpriteBatch();
OrthographicCamera camera = new OrthographicCamera(SCREEN_WIDTH, SCREEN_HEIGHT);
camera.setToOrtho(true);
//center the camera in the center of the screen
camera.position.set(SCREEN_WIDTH/2f, SCREEN_HEIGHT/2f, 0f);
//pass the camera to the third argument of the viewport
FitViewport viewport = new FitViewport(SCREEN_WIDTH, SCREEN_HEIGHT, camera);
Затем вам нужно будет создать матрицу проекции на Camera
и SpriteBatch
при визуализации:
@Override
public void render(float deltaTime) {
camera.update();
batch.setProjectionMatrix(camera.combined);
// do all the rendering of textures and stuff
}
Также вам необходимо обновлять видовое окно каждый раз при изменении размера экрана:
@Override
public void resize(int width, int height) {
viewport.update(width, height);
}
Вы могли проверить мое решение? – leonziyo