Hallo,
mein Anliegen hier einmal auf Deutsch, da ich dies auf Englisch nur schwer erklären könnte:
Für das Android Game, an welches ich arbeite, benötige ich verschiedene Effekte, die allerdings nur auf einer 2D-Ebene im Game gezeigt werden sollen, bsp. Feuerkugeln, Lichter etc..
Pro Effekt wollte ich dafür eine halbtransparente PNG benutzen, die um die 16-64 verschiedene Bildsequenzen enthält. Beispielsweise eine 512x512 PNG, die 64 Animationsabschnitte in der Größe von 64x64 Pixel enthält und diese auf ein Viereck in einer Schleife abspielt.
Das erste Problem hieran ist, dass diese Animationen nach wenigen Sekunden wieder verschwinden sollen und viele parallel ablaufen können müssen. Es wäre hier also etwas unschön, für jede Animation ein neues Objekt zu erstellen bzw. es zu kopieren und dann nach wenigen Sekunden wieder zu löschen. Kann man ein Objekt in der Form, wie man es bei OpenGL kann, mehrfach rendern oder gibt es eine Möglichkeit, in der onDrawFrame vielleicht selbst mit OpenGL kommunizieren zu können und das Ergebnis in den Framebuffer schreiben zu können (ähnlich wie die blit-Funktionen bei GLFont)(ohne Probleme mit dem Z-Buffer zu bekommen)? Das zweite Problem: Wie kann ich auf diesen Vierecken eine Animation aus dieser PNG abspielen?
Als ich die Render-Klasse noch auf OpenGL-Basis programmiert habe, habe ich hierfür ein Objekt erstellt, welches aus so vielen Rechtecken (also jeweils 2 Dreiecke) bestand, wie die Animation lang ist. Alle Rechtecke lagen hier übereinander, auf jedem Rechteck wurde ein anderer Teil der Textur gemappt und je nach Fortschritt der Animation habe ich über die glDrawArrays(GL10.GL_TRIANGLES, offset, vertices); nur ein bestimmtes Rechteck gezeichnet, indem ich "offset" und "vertices" des aktuellen Animationsbildes bestimmte.
Außerdem konnte ich das Objekt bei der gleichen Anzahl an Animationen mit einer anderen Textur ohne Probleme ein zweites mal rendern, ohne gleich ein neues Objekt erstellen zu müssen.
Gibt es in dieser Engine eventuell eine ähnliche Funktion, die dies macht, welche ich noch nicht entdeckt habe?
Viele Grüße,
Thunderfox.