{lang: 'de'}
Flashhilfe.de - Flash Community

funktion funktioniert nicht wie gewünscht [Flash 10]

 


AntwortenRegistrieren Seite1  

MartinL88#1
Benutzerbild von MartinL88
Beiträge: 23
Registriert: May 2010

26.02.2012, 15:47

Hallo,

habe wieder mal ein Problem.

die blauen Kreise prallen am großen Kreis zwar ab. Aber die mc in den blauen Kreise sollten eigentlich am blauen Kreisrand abprallen und in die andere richtung wandern innerhalb des blauen Kreises. Wenn ich es starte wanderen die blauen Kreise aber die MovieClips bleiben stehen und wenn die blauen Kreise wieder kommen verschieden die nur die MovieClips.

Hier mal der Code:


var anzBalls = 2;
var anzSchocki = 2;

var time = 10;

var bBallAry = new Array();
var sBallAry = new Array();

var startBaelle = fInit(anzBalls, bBallAry, "ball", 200,200);
var startSchocki = fInit(anzBalls,sBallAry, "schocki", 200,205);

var baelleLoop = setInterval(this,"kLoop", time, anzBalls, bBallAry);
var schockiLoop = setInterval(this,"sLoop",time, anzBalls, bBallAry,anzSchocki, sBallAry);

stop();

function sLoop(anzbaelle:Number, einArray:Array, anzschocki:Number, zweitesArray:Array){
   
   for (i=0; i<anzbaelle; i++) {
         // test rand und ball move
         obj = einArray[i];
         
      for(j=0; j<anzschocki; j++){
         schocki = zweitesArray[j];
         if (schocki.hitTest(obj)) {
            schocki._x += schocki.speedX;
         }
         else{
            schocki.speedX = -schocki.speedX;
            schocki._x += schocki.speedX;
         }
      }
   }
}


function fInit(anzbaelle:Number, einArray:Array, objName:String, positionX:Number, positionY:Number):Void {
   
   for (i=0; i<anzbaelle; i++) {
      vName = objName+i;
      vSym = objName;
      _root.attachMovie(vSym,vName,_root.getNextHighestDepth());
      obj = _root[vName];
      einArray.push(obj);
      
      obj.speedX = 1;
      obj.speedY = 1;
      
      obj._x = positionX + i*100;
      obj._y = positionY+ i*100;
   }
}


function kLoop(anzb:Number, einArr:Array):Void {
   
   var anzbaelle:Number = anzb;
   var einArray:Array = einArr;
   
   for (i=0; i<anzbaelle; i++) {
      
      obj = einArray[i];
      
      var distX:Number = obj._x-kreisGross._x;
      var distY:Number = obj._y-kreisGross._y;
      var dist:Number = Math.sqrt(distX*distX+distY*distY);
      var radius0 = obj._width/2;
      var radius1 = kreisGross._width/2;
      if (dist<radius1-radius0) {
         obj._x += obj.speedX;
         obj._y += obj.speedY;
      }
      else {
         obj.speedX = -obj.speedX;
         obj._x += obj.speedX;
         obj.speedY = -obj.speedY;
         obj._y += obj.speedY;
      }
   }
}

Angehängte Dateien:
Adobe Flash Quelldatei bereichTest.fla43.50 KB
Schlagwörter: Funktionen

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Ein Lob an die Admins [Flash CS5] 08.05.2022 - Indy_Crossover
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2024 Sebastian Wichmann - Flashhilfe.de