15.2 Animationstechniken
Wenn es um Animationen geht, haben Sie drei Techniken zur Auswahl: Sprites, doppelte Pufferung
und Ebenen. Dieser Abschnitt soll Ihnen einen Überblick über die drei Techniken geben, so
dass die Entscheidung für Sie einfacher wird.
- Sprites: Sprites sind besonders nützlich, wenn nicht viele Grafiken gezeichnet werden. Zum
Beispiel wenn Sie nur um ein paar Blöcke oder Spieler und Feind Sprites bewegen müssen. In
diesem Fall ist es besser, Sprites zu verwenden, weil Hollywood das Display ziemlich schnell
aktualisieren kann, da nicht viele Änderungen gezeichnet werden müssen.
Siehe Einführung in Sprites für Details.
- Doppelpufferung: Ein Doppelpuffer in Hollywood muss immer das ganze Display aktualisieren.
Obwohl hier wenn möglich die Hardwarebeschleunigung verwendet wird, kann das viele Ressourcen
in Anspruch nehmen, wenn ein Display von 640x480 25 Mal pro Sekunde aufgefrischt werden muss.
Somit wird Doppelpuffer nur empfohlen, wenn eine große Menge von benutzerdefinierten Grafiken
gezeichnet werden müssen. Zum Beispiel, dass Hollywood einen Doppelpuffer bei einer echten
Sinuskurve verwendet, weil eine Menge verschiedener Teile gezeichnet werden müssen. Solche
Dinge würden mit Sprites nicht möglich sein, weil die Zeichnungsoperationen stark angepasst
und jedes Einzelbild geändert werden muss. Siehe BeginDoubleBuffer() für Details.
- Ebenen: Hollywood hat ein leistungsfähiges Ebenen-System, so dass Sie auf jedes
Grafikelement auf dem Display über seine eigene Ebene zugreifen und im laufenden Betrieb
die Position sowie Größe ändern können. Das Ebenensystem ist äußerst flexibel und leistungsstark
auf Kosten der Geschwindigkeit. Wenn Sie eine Menge Grafiken zu zeichnen haben, könnte es
schneller sein, stattdessen die Doppelpufferung zu verwenden.
Hier ist eine Empfehlung von Animationstechniken, die für die häufigsten Arten von Anwendungen
geeignet sind:
- Brett-/Kartenspiel:
-
Sprites oder Ebenen, weil schnelle Grafiken nicht erforderlich sind.
- Tetris:
-
Sprites oder Ebenen, da gibt es nicht viele Aktionen und Bildschirm-Updates müssen nicht
sehr schnell sein.
- PacMan:
-
Sprites oder Ebenen. Das einzige, was sich bewegt, sind die Feinde und der Spieler.
- 2D shooter:
-
Doppelpuffer, weil der Hintergrund scrollt. Daher muss der gesamte Bildschirm
für jedes Bild aktualisiert werden.
- Jump'n'Run:
-
Doppelpuffer, wenn der Hintergrund gescrollt wird. Wird das Spiel nicht gescrollt,
dann Sprites oder Ebenen.
- Scene demo:
-
Doppelpuffer mit allen Mitteln. Viele eigene Grafiken sind zu zeichnen. Dies ist ein
klassischer Doppelpuffer-Fall.
Wenn Sie Sprites oder Ebenen verwenden, sollten Sie alle Zeichnungsbefehle eines Bildes
zwischen BeginRefresh() und EndRefresh() kapseln. Dies ermöglicht Hollywood
optimierte Zeichnungen auf Systeme zu verwenden, die nicht Teil-Bildschirmaktualisierung
wie Android unterstützen. Als willkommener Nebeneffekt wird mit BeginRefresh() und
EndRefresh() auch die Zeichnungsgeschwindigkeit verbessert, wenn die Autoskalierung aktiv ist.
Siehe BeginRefresh für Details.
Navigation zeigen