1. Es gibt keine allgemeinen Best Practices.
Wenn Sie viele (komplex geformte) Elemente, Partikel usw. in Ihrem Spiel haben, wird der Bitmap-Puffer-Ansatz viel schneller sein. Der Bitmap-Puffer lässt sich mit zunehmender Komplexität Ihrer Sprites auch besser skalieren. Der Vektor-Renderer wird bei komplexeren Formen oder Tween-Animationen (Form-Tween-Animationen) langsamer. Er bietet jedoch einige andere Vorteile:
- Sie können Ihre Assets frei skalieren oder sogar in die Szene hineinzoomen, ohne an Qualität zu verlieren.
- Rotationen oder andere Transformationen wie Schrägstellen sind bei Vektorgrafiken viel einfacher durchzuführen
Zusammenfassend kommt es also darauf an, welche Art von Spiel Sie erstellen.
2. Verwenden von MovieClips anstelle von Bitmap-Sprite-Sheets
Ich denke du meintest "Bitmap Sprite-Sheets" und nicht die AS3 Sprite Klasse?
Das macht eigentlich keinen Unterschied. Sie können Ihre MovieClip-basierten Animationen jederzeit in animierte Bitmaps umwandeln. Entweder manuell, indem Sie den Film in Frames exportieren und in ein Sprite-Sheet umwandeln, oder dynamisch, indem Sie zur Laufzeit ein Sprite-Sheet aus Ihrem MovieClip rendern. So würde ich das machen:
- Erstellen Sie eine Instanz des MovieClip und
stop()
es.
- Erstellen Sie ein
new BitmapData
Objekt mit der gleichen Breite und Höhe wie der Movieclip.
- Verwenden Sie die draw () -Methode, um den MovieClip in die BitmapData zu rendern.
- Speichern Sie das BitmapData-Objekt in einem Array oder Vektor.
- Gehen Sie zum nächsten Bild Ihres MovieClips und wiederholen Sie die Schritte 2 bis 4, bis Sie das letzte Bild Ihres MovieClips erreicht haben. Es ist auch eine gute Idee, zwei Variablen mit der maximalen Breite und Höhe Ihrer MovieClip-Frames zu aktualisieren (da sich diese von Frame zu Frame ändern können).
- Jetzt können Sie alle gespeicherten BitmapData-Objekte zu einem Sprite-Sheet kombinieren (verwenden Sie BitmapData.copyPixels () ).
3. Sprite-basierte Animationen
Wie in der Antwort auf Ihre erste Frage erwähnt, gibt es darauf keine eindeutige Antwort. Wenn Sie viele Transformationen mit Ihren Objekten durchführen müssen, z. Skalieren und Drehen Mit dem nativen Flash-Renderer sind Sie wahrscheinlich besser dran. Wenn Sie vordefinierte Animationen erhalten haben, die (manuell oder dynamisch) in Sprite-Sheets gebacken werden können, und wenn Sie Hunderte von Sprites gleichzeitig anzeigen müssen, wählen Sie eine Bitmap-Rendering-Engine.