• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Der Sommer ist da! Laue Nächte, lange Abende im Biergarten und Mücken in Heeresstärke - dazu passend lautet das Thema unseres Fotowettbewerbs im Juni Nachtleben --> 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