• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Actionscript Random Motion

mschoening

Gelbe Schleswiger Reinette
Registriert
21.02.07
Beiträge
1.764
Hi,
wie bekomme ich es hin, dass ein Kreis sich innerhalb eines anderen Kreises "randomly" bewegt aber nicht an die Kanten des äußeren Kreises stößt? Die Bewegung sollte schon fließend sein (smooth).

MfG,
Max
 
also ich hab mir mal en paar gedanken gemacht, hier is mal der Quellcode und im anhang die fla und swf. is zwar noch nich ganz perfekt aber ich denk des könnt auf dein problem passen.

Code:
import flash.events.EventDispatcher;
var radiusa:int = 150;
var radiusb:int = 30;
var multi:int = 1;
var movex:Number = Math.random() * multi;
var movey:Number = Math.random() * multi;
var entfernung:Number = Math.random() * 100;
trace (movex);

kreisa_mc.addEventListener(Event.ENTER_FRAME, function movekreis(){
                                                                  
                                                
                                            kreisa_mc.kreisb_mc.x += movex;
                                            kreisa_mc.kreisb_mc.y += movey;
                                            
                                            var test:Number = Math.sqrt(Math.pow(kreisa_mc.kreisb_mc.x,2) + Math.pow(kreisa_mc.kreisb_mc.y,2));
                                            trace(test);
                                            if(test >= radiusa - radiusb - entfernung){
                                                if(movex > 0){
                                                movex = -Math.random() * multi;
                                                movey = -Math.random() * multi;
                                                }else{
                                                movex = Math.random() * multi;
                                                movey = Math.random() * multi;
                                                }
                                            }
                                            
                                                                  }
                                                                  )

lg zim
 

Anhänge