2015-09-13 3 views
3

Итак, я использую LibGDX для своего предстоящего приложения.Фоновый рисунок LibGDX в FitViewport

Я использую FitViewport для обеспечения соотношения сторон 16: 9. Таким образом, игроки с другими пропорциями, чем 16: 9, будут иметь черные полосы на сайтах.

Каков наилучший способ нарисовать фоновое изображение на экране, которое также охватывает область, где будут черные полосы?

camera = new OrthographicCamera(); 
    viewport = new FitViewport(WIDTH, HEIGHT, camera); 
    viewport.apply(); 
    camera.position.set(WIDTH/2, HEIGHT/2, 0); 
    camera.update(); 

Вот как настроить мои камеры/видовой экран в данный момент.

Затем я рисую материал на нем с помощью SpriteBatch.

Gdx.gl.glClearColor(1, 1, 1, 1); 

Вот как я по крайней мере меняю цвет черных полос на любой цвет RGB.

ответ

3

На мой взгляд, лучшая идея заключается в создании второго этапа и его собственных Viewport только для фоновых целей. Этот второй Viewport не должен быть FillViewport - он увеличит ваши графики из моего опыта. Думаю, ExtendViewport лучше в этом случае.

Так как это должно выглядеть:

Stage stage, backStage; 
    FitViewport viewport; 
    ExtendViewport backViewport; 

    ... 

    stage = new Stage(); //this is your normal stage you have now 
    stage.setViewport(yourFitViewport); //here you are assingning fit viewport 

    backViewport = new ExtendViewport(screenWidth, screenHeight); 

    backStage = new Stage(); 
    backStage.setViewport(backViewport); 

    ... 
    //now add to backStage your background Image 

    backStage.addActor(yourBackground); 

Теперь просто обрабатывать новый этап в методе визуализации.

backStage.act(); 
    stage.act(); 

    backStage.draw(); //backStage first - we want it under stage 
    stage.draw(); 

И обновляйте Viewport в обновлении или сделать как ваш старый. Это все.

Подробнее о Viewports здесь: https://github.com/libgdx/libgdx/wiki/Viewports

+0

Ни текстуры не Sprite не addable на сцену в качестве актера. Я все еще мог сделать это с ExtendViewport, хотя, спасибо. – Tavados

+0

yup но ** новый изображение (текстура текстуры); ** –

Смежные вопросы