2017-01-09 32 views
0

爲什麼這爲什麼Sprite.draw不會渲染我的精靈,但是Batch.render和SpriteBatch.render會這樣做?

player.sprite.draw(batch); 

不會呈現我的精靈,但

batch.draw(player.sprite.getTexture(), 0,0); 

呢?

我的完整的渲染方法:

public void render(float deltaTime) { 
    if (assets.assetManager.update()) { 
     loading = false; 
     player = new Cat(assets.assetManager.get("textures/Cat.png", Texture.class)); 
     player.sprite.setPosition(0,0); 
    } 
    else 
    { 
     timeLoading += deltaTime; 
     System.out.println("Progress: " + assets.assetManager.getProgress() * 100); 
    } 

    if (!loading) 
    { 
     rayHandler.updateAndRender(); 
     Gdx.gl.glClearColor(0.37f, 0.73f, 0.84f, 1f); 
     Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);       Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
     processUserInput(); 
     player.update(deltaTime); 

     orthogonalTiledMapRenderer.setView(orthographicCamera); 
     orthogonalTiledMapRenderer.render(); 

     batch.begin(); 
     if (debug) 
      renderDebugInfo(); 
     player.sprite.draw(batch); 
     batch.draw(player.sprite.getTexture(), 0,0); 
     batch.end(); 

     batch.setProjectionMatrix(orthographicCamera.projection); 
     rayHandler.setCombinedMatrix(orthographicCamera); 
     orthographicCamera.update(); 

     world.step(1, 4, 4); 
    } 
} 

回答

-1

我沒有用雪碧的構造函數,並設置與Sprite.setTexture的紋理,但是這有點不正確初始化雪碧。現在使用構造函數,我可以渲染它。

+2

Sprite的空構造函數的文檔說明必須先設置一個區域,然後才能繪製它。僅僅設置紋理也不會設置區域。 – Tenfour04