funktion funktioniert nicht wie gewünscht [Flash 10]
| 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:
| |
| Ähnliche Beiträge zum Thema | 13.09.2021 - Willisquirion 08.05.2022 - Indy_Crossover 28.07.2022 - TateBauch 13.09.2022 - Rennier |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News
Regeln & Bedingungen
|