Startseite    JDSolutions 3D Walking  


Eine Animation, die aus dem schon bekannten Läufer aus "Get the Ball" und einem sich bewegenden Boden besteht. Der sich bewegende Boden wird mit folgendem Actionscript (im 1.Frame) erzeugt:
       for( i=0; i<21; i+=2 )
       {
	     duplicateMovieClip(_root.ilinie,"ilinie"+i,i);       // Linie 'ilinie' duplizieren
	     setProperty (_root["ilinie"+i], _y, (200+i*i/2));    // neuer, größer werdender Abstand
	     setProperty (_root["ilinie"+i], _alpha, i*5+40);     // erzeugt heller werdende Linie
       }
	   
Dabei wird eine Linie mit dem Befehl duplicateMovieClip() dupliziert. Der Eindruck einer Tiefe entsteht zum einen dadurch, dass der Abstand der Linien nicht linear sondern mit der Formel ( 200 + i * i / 2 ) mit größer werdendem y immer größer wird. Zusätzlich werden über die Formel die den Alphawert berechnet ( i * 5 + 40 ) die Linien von einem dunklen Wert mit größer werdendem y-Wert immer heller. Die Bewegung des Untergrundes wird über das folgende Actionscript gesteuert (auf dem MC 'ilinie'):
       onClipEvent(load)
       {
	     _root.ilinie._alpha=0;      // Setzt die ursprüngliche Linie auf unsichtbar
	     swert=0;                    // Variable für die Verschiebung
       }

       onClipEvent(enterFrame)
       {
         for( i=0; i<21; i+=2 )
         {
	       setProperty (_root["ilinie"+i], _y, (200+(swert+i)*(swert+i)/2));
         }
         swert+=0.4;
         if(swert >= 2)swert=0;
       }
	   
Das Vorgehen ist folgendes: Innerhalb der for-Schleife wird der zu Begin gezeichnete Satz von Linien verschoben. Dabei muß berücksichtigt werden, dass die Verschiebung mit größer werdenden y ebenfalls größer wird. Dies wird dadurch erreicht, dass zu der Laufvariablen i der Inhalt der Variablen 'swert' hinzuaddiert wird: ( 200 + ( swert + i ) * ( swert + i ) / 2 ). Dadurch dass 'swert' danach um 0.4 erhöht wird, wird der nächste Satz von Linien abermals etwas tiefer erzeugt. Erreicht 'swert' den Wert 2, so wird 'swert' wieder auf 0 gesetzt. Dies hat zur Folge, dass insgesamt 5 Sätze von Linien erzeugt werden, die immer um einen gewissen Wert gegenüber dem vorherigen Satz verschoben sind. Wichtig ist auch, dass die Veränderung der Variable 'swert' ebenso wie der Wert, wann diese zurückgesetzt wird, auf die Schrittweite der beiden for-Schleifen abgestimmt ist, damit ein flüssiger Übergang erreicht wird.



Copyright © 1998 - 2004 und Design by www.jdsolutions.de