Ich weiß nicht, ob das mit Greenfoot 3.1 aufwärts noch funktioniert. Ich bin gerade schlichtweg zu faul, es auszuprobieren. Also tun Sie es selbst.

Mit animierten GIFs (also Bildern mit Animationseffekten) können Sie Ihre Greenfoot-Projekte schön aufpeppen. Mir fehlt die Erfahrung, ob es hier zu Performance-Problemen kommt, ich schätze aber, wenn man es nicht zu exzessiv einsetzt, sollte das kein Problem geben.

Hier haben Sie zum Testen ein animiertes GIF, beim Strichmännchen sollten sich die Beine bewegen (gestaltet von Pixabay/OpenClipart-Vectors, CC0) - rechte Maustaste -> Speichern unter o.ä. zum Download:

animgif_beispiel

Um ein animiertes GIF zu benutzen, sind folgende Schritte notwendig:

Im Greenfoot-Szenariofenster "Bearbeiten" -> "Importiere Klasse"

greenfoot-klasse-importieren

Wählen Sie die Klasse GifImage aus:

greenfoot-klasse-gifimage-importieren

Diese Klasse hat jemand geschrieben, so wie Sie selbst eine Klasse schreiben können. Unter "Method Summary" sehen Sie die Methoden, die Sie benutzen können. Für einfache Animationswiedergabe brauchen Sie nur getCurrentImage(). Mit getImages() erhalten Sie eine Liste der Einzelbilder, das kann u.U. auch nützlich sein.

Nun befindet sich die Klasse GifImage in Ihrem Projekt und Sie können Sie benutzen. Ihr Projekt sollte nun so aussehen wie auf dem Screenshot, rechts unten die Klasse GifImage (die keine Unterklasse von Actor oder World ist):

greenfoot3-klasse-gifimage-importiert

Diese Klasse brauchen Sie nicht zu öffnen oder zu verstehen.

Nun legen Sie sich einen neuen Actor an. Dem geben Sie ein Attribut vom Typ GifImage im folgenden Format:

private GifImage g = new GifImage("nameDerDatei.gif")

Den Namen des Attributs (hier einfach g) können Sie sich wie immer selbst aussuchen. Die GIF-Datei muss im Verzeichnis "images" in Ihrem Projekt liegen.

Dann setzen Sie in die act()-Methode den Befehl

this.setImage(g.getCurrentImage())

In jedem act()-Zyklus wird nun das animierte GIF auf neue Frames (also auf Veränderungen im Bild) überprüft und der aktuelle Frame als Bild für this (= Ihre Spielfigur) verwendet.

Das Ganze sieht so aus:

greenfoot-klasse-gifimage-benutzen