2017-11-02 29 views
2

です。スプライトと図形を画面上に描画する必要があります。SpriteBatchとShapeRenderer描画順序はlibgdx

レンダリングメソッドでSpriteBatchとShapeRendererの開始と終了を複数回呼び出すのは問題ありません。

これを避けるために離れていますか?

私の要件。

shapeRenderer.begin(ShapeRenderer.ShapeType.Line); 
shapeRenderer.setProjectionMatrix(batch.getProjectionMatrix()); 
shapeRenderer.rect(....); 
shapeRenderer.end(); 


batch.begin(); 
for (int i = 0; i < spriteList.size(); i++) { 
    spriteList.get(i).render(batch); 
} 
batch.end(); 

shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); 
shapeRenderer.setProjectionMatrix(batch.getProjectionMatrix()); 
shapeRenderer.setColor(Color.GRAY.r,Color.GRAY.g, Color.GRAY.b, 1); 
shapeRenderer.rect(....); 
shapeRenderer.end(); 

batch.begin(); 
score.render(batch); 
batch.end(); 

答えて

2

いいえありません。あなたが物を描きたいと思う特定の順序があり、それが異なるバッチを必要とする場合、終わりを呼び出して繰り返し始める必要があります。それは恐ろしいデザインのIMOです(図書館側から)が、それはどのように動作するのですか。

回避策はありません。すべてが存在するとは限りません。レンダラーを変更するたびに、開始と終了を呼び出すことに悩まされています

関連する問題