2016-03-25 7 views
1

Возможно ли установить минимальное и максимальное соотношение сторон? Скажем, от 1: 1 до 2,5: 1. Или, по крайней мере, установить min и max для ширины и высоты?Соотношение сторон блокировки Libgdx до определенного диапазона

+0

Вы могли проверить мое решение? – leonziyo

ответ

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); 
}