繁体   English   中英

除非Android应用程序暂停,否则精灵不会显示-LibGDX

[英]Sprite not displaying unless android app pauses - LibGDX

这是代码: http : //hastebin.com/ugufakeyap.java

当我运行此命令时,屏幕上未显示精灵“ 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);
}

通常,您也可以在那里更新批处理投影矩阵,但是无论如何,您都要在render方法的每一帧中进行更新。

有人在libGDX irc频道上帮助了我。 原来我没打电话

viewport.update(width, height, centerCamera);

(感谢Xoppa

并且(根据ASneakyFox ):“您必须假设android设备不会达到您想要的大小,它会在应用打开或更改方向时调用resize,因此您可以将布局修改为屏幕尺寸(即更改视口)”

这是代码的更新版本: http : //hastebin.com/olivopocix.java

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM