簡體   English   中英

Spritebatch沒有繪制任何LibGDX

[英]Spritebatch not drawing anything LibGDX

這是我在LibGDX中發生過的最奇怪的事情之一。 我已經在我的游戲中使用了所有其他狀態的這些確切的規格,但是在不同的名稱下它們都工作正常,除了我的ShopState,它根本不會呈現任何東西! 這是我的課程代碼:

public class ShopState extends State{
    private Texture bg;
    private Sprite shopLayout;
    private OrthographicCamera shopCam;
    Viewport viewport;

    public ShopState(GameStateManager gsm) {
        super(gsm);
        shopLayout = new Sprite(new Texture(Gdx.files.internal("shopLayout.png")));
        bg = new Texture("bg2.png");
        shopCam = new OrthographicCamera();
        viewport = new StretchViewport(720, 1280, shopCam);
        viewport.apply();
        shopCam.position.set(shopCam.viewportWidth / 2, shopCam.viewportHeight / 2, 0);
        shopLayout.setPosition(shopCam.viewportWidth / 2 - shopLayout.getWidth() / 2, shopCam.viewportHeight / 2 - shopLayout.getHeight() / 2);
        shopLayout.setSize(650, 1100);
    }

    @Override
    public void handleInput() {

    }

    @Override
    public void update(float dt) {
        handleInput();

    }
    @Override
    public void resize(int width, int height){
        viewport.update(width, height);
        shopCam.position.set(shopCam.viewportWidth / 2, shopCam.viewportHeight / 2, 0);
    }


    @Override
    public void render(SpriteBatch sb) {
        shopCam.update();
        sb.setProjectionMatrix(shopCam.combined);
        sb.begin();
        sb.draw(bg, 0 , 0, shopCam.viewportWidth, shopCam.viewportHeight);
        shopLayout.draw(sb);
        sb.end();

    }

    @Override
    public void dispose() {
        bg.dispose();
        shopLayout.getTexture().dispose();

    }
}

我究竟做錯了什么? 一切似乎都很好,但是當我點擊商店按鈕時,我得到的只是黑屏!

好的,找到了解決方案,但我不知道為什么要修復它。 我所要做的就是添加一個使用當前視口的舞台。

stage = Stage(viewport);

就是這樣! 由於某種原因,它現在正常工作......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM