2017-01-28 11 views
1

Это одна из самых странных вещей, которые когда-либо случались в LibGDX для меня. Я использовал эти точные спецификации для всех моих других государств в своей игре, но под разными именами, и все они прекрасно работают, за исключением моего ShopState, который вообще ничего не сделает! Вот мой код для класса:Spritebatch ничего не рисует LibGDX

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(); 

    } 
} 

Что я делаю неправильно? Все кажется прекрасным, но все, что я получаю, когда я нажимаю кнопку «Магазин», дает мне черный экран!

+0

что такое размер магазина по умолчаниюLayout.png ?? – Aryan

+0

Имеет ли это значение? Я все равно изменил его размер. – vladutelu

+0

перед установкой нового размера вы используете его для установки позиции shopLayout. – Aryan

ответ

0

Хорошо, нашел решение, но я понятия не имею, почему это исправляет его. Все, что мне нужно было сделать, это добавить сцену, использующую текущий видовой экран.

stage = Stage(viewport); 

И все! В настоящее время он работает нормально, почему-то ...