Impressum


Bewegung und Richtung geschrieben am 15.09.2009

Richtung

Gegeben sei ein Movieclip, 0° sind oben 90° rechts usw..

Der Winkel wird mit hilfe des atan2 errechnet:
ActionScript2this.pfeilmc.onEnterFrame=function(){ var vy=_root._ymouse-this._y; var vx=_root._xmouse-this._x; var winkel=90+Math.atan2(vy, vx) * 180 / Math.PI; this._rotation=winkel; }
ny und nx sind die jeweiligen Richtungsvektoren. Es werden hier noch 90° addiert, ein kleine Korrektur.

Hier ist das Flash-Plugin erforderlich.



Bewegung

Möchte man ein Movieclip automatisch an einen Punkt verschieben, so kann diese Funktion benutzt werden:
ActionScript2function MCmoveto(MC:MovieClip,zx,zy,pos){ var schritte=10; pos++; var nx=(zx-MC._x)/schritte*pos; var ny=(zy-MC._y)/schritte*pos; if(pos==schritte || (Math.round(nx)==0 && Math.round(ny)==0)) { //fertig, /*neues Ziel per Zufall erzeugen zx=Math.round(Math.random()*540)+50; zy=Math.round(Math.random()*200)+50; setTimeout(MCmoveto,25, MC,zx,zy,0); */ } else {//in Richtung Ziel schieben MC._x=Math.round(MC._x+nx); MC._y=Math.round(MC._y+ny); setTimeout(MCmoveto,25, MC,zx,zy,pos);//Timeout neustarten updateAfterEvent(); } }
Selbige Funktion für Flash MX(7), die Timeout nicht kennt:
ActionScript2_FlashMX(7)function MCmoveto(MC:MovieClip,zx,zy,pos){ var schritte=10; pos++; var nx=(zx-MC._x)/schritte*pos; var ny=(zy-MC._y)/schritte*pos; if(pos==schritte || (Math.round(nx)==0 && Math.round(ny)==0)) { //fertig, if(MC.tid!=undefined)clearInterval(MC.tid); MC._x=zx; MC._y=zy; } else {//in Richtung Ziel schieben MC._x=Math.round(MC._x+nx); MC._y=Math.round(MC._y+ny); if(MC.tid!=undefined)clearInterval(MC.tid); MC.tid=setInterval(MCmoveto,25, MC,zx,zy,pos);//Timeout neustarten updateAfterEvent(); } }
Gestartet wird die Aktion in dem man die Funktion aufruft und neben den MovieClip, die neue x- und y-Koordinate übergibt; den letzten Parameter setzt man auf 0.

Was macht die Funktion?

Zuerst wird der Weg zur neuen Koordinate berechnet und durch schritte geteilt-hier 10. Dann wird der Movieclip dieses Zehntel*pos des Weges bewegt.
Die Funktion ist beendet wenn pos gleich schritte ist oder das Ziel gleich der aktuellen Koordinate ist.
Das ganze mal visuell dargestellt:

Hier ist das Flash-Plugin erforderlich.



Demo

Die Funktion mit dem der obigen Richtungsanzeige gekoppelt ergibt dies:

Hier ist das Flash-Plugin erforderlich.


ergänzt mit noch etwas BitmapData-drawing.

Downloads

download: richtung.rar 4.26kb - Flash CS
download: moveto2.rar 5.23kb - Flash CS3
download: moveto2.txt 3.11kb - nur die Scripte
zur freien Nutzung


schreibe den ersten Kommentar:


Inhalt zur freien Verwendung gibs es beim Thema Downloads.
nach oben springen
mehr auf: Instagram, github, thingiverse