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.

  1. 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.

  2. 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.

  3. 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