下面是代碼: http://hastebin.com/ugufakeyap.java雪碧不顯示,除非Android應用程序停頓 - LibGDX
當我運行此,精靈「aspectRatios」不顯示在屏幕上。但是,當我按下我的主頁按鈕暫停程序,然後重新開始程序時,它會將精靈顯示在屏幕上。爲什麼是這樣?這真的很煩人。
下面是代碼: http://hastebin.com/ugufakeyap.java雪碧不顯示,除非Android應用程序停頓 - LibGDX
當我運行此,精靈「aspectRatios」不顯示在屏幕上。但是,當我按下我的主頁按鈕暫停程序,然後重新開始程序時,它會將精靈顯示在屏幕上。爲什麼是這樣?這真的很煩人。
您需要在更改位置後致電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);
}
您通常會更新批處理投影矩陣,但是您仍然會在渲染方法的每一幀中執行它。
Stlil不起作用。 –
你有沒有試過移動相機?也許註釋掉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 –
當我註釋掉update()和apply()我看到一個屏幕上空白的東西,但不是精靈。 –
有些人幫我在libGDX irc頻道。 事實證明,我沒有打電話
viewport.update(width, height, centerCamera);
(感謝Xoppa)
和(根據ASneakyFox): 「你必須假設Android設備的心不是要去方便地調整你想要的大小,當應用程序打開或更改方向時它會調用調整大小,以便可以將佈局修改爲屏幕的尺寸(即更改視口)「
這裏是更新的版本代碼的離子: http://hastebin.com/olivopocix.java
你可以接受你自己的答案(並通過這樣做賺取一個有趣的徽章)。 – iksemyonov
任何logcat輸出值? –
不,我沒有看到任何有價值的東西。 –
它在桌面項目中工作嗎? –