In meinem geilen Spiel "Trip to Breakpoint - The Game", dass du
hier herunterladen kannst (oder zu dem du
hier ein Video zu gucken kannst), habe ich das Thema mehrmals bearbeitet. Gleich im Menü siehst du, wie der Bus vorbeifliegt. Später im Spiel fahren immer Autos und Begrenzungspfosten vorbei und am Ende gibt es auch... Wolken!
Ich persönlich habe keine guten Erfahrungen mit vorbei"laufenden" Pseudopersonen gemacht. Als ich die Objektanimationen noch nicht kannte, habe ich damit experimentiert, sie aber nicht unter Kontrolle gekriegt. Also zeige ich dir hier die Variante mit den Objektanimationen mithilfe der angehängten Grafik.
Die Kulisse ist hier Xp=800 * Yp=600 Pixel groß. Die Wolkenanimation ist Xa=200 * Ya=200 Pixel groß und soll von Position a aus langsam nach rechts fahren, vollständig verschwinden und dann links wieder auftauchen. Da bei Beginn der Kulisse schon die Wolken vorhanden sein müssen, startet die Animation bei Xs=200, Ys=200. Die linke obere Ecke ist der Angelpunkt der Wolke, auf den sich die Berechnungen beziehen.
Wir verknüpfen die Animation mit einem Wert, der solange hochgezählt wird, bis die Wolke von a nach b gekommen ist. Dann wird sie nach c gesetzt und wieder hineingefahren und das ganze geht von vorne los.
Richte als erstes die Animation ein!
- Lege ein Kulissenobjekt mit dem Namen "wolke" an und klicke in der Liste auf das Objekt.
- Wähle den Kartenreiter "Animation" und füge eine neue Animation hinzu, die du "wolke_anim" nennst.
- Füge hier das Bild deiner Wolke ein.
- Bei den Einstellungen setzt du den Pausenwert auf 1.000.000 und checkst bei "Wiederholungen" "unendlich" an.
- Erstelle eine neue Aktion, die du "Wolkenbewegung" nennst. Rufe diese in der "Bei Begin der Kulisse"-Aktion auf.
- Füge in die neue Aktion "Wolkenbewegung" folgende Aktionsteile ein:
Animation 'wolke_anim' abspielen
Animation 'wolke_anim' auf (200,200) setzen
Beim Starten der Kulisse sollte die Wolke jetzt dargestellt werden. Bitte testen.
Jetzt Bewegen wir die Wolke!
- Erstelle einen Wert namens "wolke_zaehler"
- Füge Aktionsteile ein, bis die Aktion "Wolkenbewegung" so aussieht:
Animation 'wolke_anim' abspielen
Animation 'wolke_anim' auf (200,200) setzen
Animation 'wolke_anim' um (1,0) nach unten/rechts verschieben
Wert 'wolke_zaehler' + 1
Wenn Wert 'wolke_zaehler' = 600
Animation 'wolke_anim' auf (-200,200) setzen
Wert 'wolke_anim' = -400
Ende Wenn
Pause für 10 Millisekunden
Springe zu Aktionsteil #2
Fertig.Erklärung: In jedem Zyklus wird die Wolke um 1 Pixel nach rechts verschoben und gleichzeitig der Zähler um 1 erhöht. Die Geschwindigkeit der Bewegung stellst du in der Pause am Schluss ein. Ist die Wolke 600 Pixel nach rechts gekommen, ist sie nicht mehr zu sehen und kann links neben die Kulisse gesetzt werden. Der Wert 'wolke_anim' muss dann auf -400 gesetzt werden, damit er wieder bei 0 liegt, wenn die Wolke die Startposition (X=200) erreicht hat, so dass sich der Loop schließt.
Allgemein:
Animation 'wolke_anim' abspielen
Animation 'wolke_anim' auf (Xs,Ys) setzen
Animation 'wolke_anim' um (1,0) nach unten/rechts verschieben
Wert 'wolke_zaehler' + 1
Wenn Wert 'wolke_zaehler' = (Xp - Xs)
Animation 'wolke_anim' auf (0 - Xa, Ys) setzen
Wert 'wolke_anim' = (0 - Xs - Xa)
Ende Wenn
Pause für 10 Millisekunden
Springe zu Aktionsteil #2
Hat es geklappt?
Falls die Wolke übrigens nach links fahren soll, muss die Aktion so aussehen:
Animation 'wolke_anim' abspielen
Animation 'wolke_anim' auf (200,200) setzen
Animation 'wolke_anim' um (-1,0) nach unten/rechts verschieben
Wert 'wolke_zaehler' + 1
Wenn Wert 'wolke_zaehler' = 400
Animation 'wolke_anim' auf (800,200) setzen
Wert 'wolke_anim' = -600
Ende Wenn
Pause für 10 Millisekunden
Springe zu Aktionsteil #2
Allgemein:
Animation 'wolke_anim' abspielen
Animation 'wolke_anim' auf (Xs,Ys) setzen
Animation 'wolke_anim' um (-1,0) nach unten/rechts verschieben
Wert 'wolke_zaehler' + 1
Wenn Wert 'wolke_zaehler' = (Xs + Xa)
Animation 'wolke_anim' auf (Xp, Ys) setzen
Wert 'wolke_anim' = (0 - Xp + Xs)
Ende Wenn
Pause für 10 Millisekunden
Springe zu Aktionsteil #2