2015-09-27 62 views

回答

0

您需要在更改位置後致電camera.update();。我最好的猜測是libGDX會在簡歷中自動更新相機。

public void create() { 
    batch = new SpriteBatch(); 
    txt = new Texture(Gdx.files.internal("test2.png")); 
    aspectRatios = new Sprite(txt); 
    aspectRatios.setPosition(0,0); 
    //aspectRatios.setSize(100,100); 

    camera = new OrthographicCamera(); 
    viewport = new StretchViewport(1080,1920,camera); 

    camera.position.set(camera.viewportWidth/2,camera.viewportHeight/2,0); 
    camera.update(); 
    viewport.apply(); 
    //batch.setProjectionMatrix(camera.combined); 
    Gdx.input.setInputProcessor(this); 
} 

您通常會更新批處理投影矩陣,但是您仍然會在渲染方法的每一幀中執行它。

+0

Stlil不起作用。 –

+0

你有沒有試過移動相機?也許註釋掉camera.position.set行,看看你得到什麼。當相機更新它時,無論如何都會將視口中的視圖居中。 'projection.setToOrtho(zoom * -viewportWidth/2,zoom *(viewportWidth/2),zoom * - (viewportHeight/2),zoom \t \t \t * viewportHeight/2,near,far);'as as in in update ()'在https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/graphics/OrthographicCamera.java –

+0

當我註釋掉update()和apply()我看到一個屏幕上空白的東西,但不是精靈。 –

0

有些人幫我在libGDX irc頻道。 事實證明,我沒有打電話

viewport.update(width, height, centerCamera); 

(感謝Xoppa

和(根據ASneakyFox): 「你必須假設Android設備的心不是要去方便地調整你想要的大小,當應用程序打開或更改方向時它會調用調整大小,以便可以將佈局修改爲屏幕的尺寸(即更改視口)「

這裏是更新的版本代碼的離子: http://hastebin.com/olivopocix.java

+0

你可以接受你自己的答案(並通過這樣做賺取一個有趣的徽章)。 – iksemyonov