Wozu dient die Klasse SpriteBatch des libGDX-Frameworks?

...komplette Frage anzeigen Bild zu Texture und TextureRegion - (programmieren, Framework, LibGdx)

2 Antworten

Hallo,

die Klasse SpriteBatch dient dazu Texturen (auch TextureRegions) zu "zeichnen". Dabei verwaltet er einen Buffer, der eine gewisse Anzahl an drawcalls (Zeichenaufrufen) zu einem Batch bündelt und sie dann eben gebündelt an die Grafikkarte schickt.  

Zudem können für den SpriteBatch verschiedene Dinge gesetzt werden, die die gezeichneten Texture verändern können (z.B. Shader, Color...).  

Wichtig ist, dass du einen SpriteBatch "aktivierst", bevor du beginnst mit ihm zu zeichnen (spritebatch.begin()). Sobald du fertig gezeichnet hast musst du spritebatch.end() aufrufen. Dadurch wird sein Buffer an die Grafikkarte geschickt, wodurch dann alles wirklich gezeichnet wird.  

Wichtig: Es darf immer nur 1 Batch zur selben Zeit aktiv sein. Das heißt, wenn du mit verschiedenen Batches zeichnest musst du end() aufrufen, bevor du begin() des anderen Aufrufst. Zu den Batches gehört auch der ShapeRenderer oder ModelBatch (für 3D).

Ich hoffe ich konnte helfen.

LG

Antwort bewerten Vielen Dank für Deine Bewertung
SirNik 04.04.2016, 12:55

Danke dir :D

0
Springrbua 04.04.2016, 14:09
@SirNik

Noch ein kleiner Tipp: Wenn du mit Englisch kein Problem hast würde ich dir bei Fragen zu LibGdx (oder Programmieren im Allgemeinen) eher zu StackOverflow raten. Da StackOverflow international ist, sind deutlich mehr aktive Leute dort unterwegs (u.A. auch einige der Entwickler von LibGdx). Während es hier auf Gute Frage gerade einmal 13 Fragen zu LibGdx gibt, die auch kaum Beachtung fanden, gibt es auf SO über 8000 Fragen.

LG

0
SirNik 07.04.2016, 15:47

Joa :D SO guck ich auch gerne nach, aber Fragen stellen tu ich eig fast nur hier :) aber hast recht, ist eig sinnvoller auf SO :D

0

Du solltest lieber in einem entsprechenden libgdx Forum nachfragen...

Wobei ich die Frage ehrlich gesagt nicht verstehe. Die Doc erklärt alles ziemlich präzise .

Antwort bewerten Vielen Dank für Deine Bewertung
SirNik 30.03.2016, 16:58

Erstmal Danke für die Antwort.

Im libGDX-Forum weiß ich nicht, wie atkiv es dort zugeht, deswegen habe ich hier um rate gebeten, da ich weiß, dass man hier eigentlich meistens eine brauchbare Antwort bekommt.

Das mag sein, aber ich bin trotzdem verwirrt. Wenn du es gut verstehst, könntest du es mir vielleicht ganz kurz in deinen Worten wiedergeben?

Vielen Dank

0

Was möchtest Du wissen?