SpriteBatch dan ShapeRenderer menggambar pemesanan di libgdx

Saya harus memesan sprite dan bentuk yang digambar di layar.

bolehkah memanggil awal dan akhir SpriteBatch dan ShapeRenderer beberapa kali dalam metode render.

Apakah ada cara untuk menghindari hal ini?

Persyaratan saya.

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

person pats    schedule 02.11.2017    source sumber


Jawaban (1)


Tidak, tidak ada. Jika Anda memiliki urutan tertentu di mana Anda ingin menggambar sesuatu dan memerlukan batch yang berbeda, Anda harus memanggil end dan start berulang kali. Ini IMO desain yang buruk (dari sisi perpustakaan) tapi begitulah cara kerjanya.

Tidak ada solusi untuk mengatasi hal tersebut, dan saya ragu akan ada solusinya. Jadi Anda terjebak dengan panggilan mulai dan berakhir setiap kali Anda mengganti penyaji

person Zoe    schedule 02.11.2017