2015-09-27 58 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