• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

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