下面是代码: 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输出值? –
不,我没有看到任何有价值的东西。 –
它在桌面项目中工作吗? –