iamdesign
Legacy Member
Hoy iedereen,
hier nog een vraagje ivm actionscript:
ik haal uit een array (dank je voor de tip Lunchbox ^^) x-aantal movieclips die ik random over het scherm laat bewegen.
Nu zou het leuk zijn moesten die boxjes als ze tegen elkaar knallen ook een andere richting zouden kiezen ipv elkaar gewoon te overlappen => dus ik gebruik de hittest van AS.
Nu stelt het probleem zich dat er idd wordt gecontroleerd als ze zich elkaar raken, maar als ik ze een nieuwe coordinaat toewijs (weer random) dan geraken ze precies in elkaar "verstrengeld" :-/
dus gedaan leuk effect
dit is de code:
Is het trouwens mogelijk om die hittest zo te schrijven dat elk movieclip wordt gecontroleerd, want stel dat ik nu 25 MC's aanmaak...dan moet ik toch geen 25x die hittest controlleren?
alvast bedankt
een voorbeeld van het probleem kan je hier vinden: http://iamdesign.be/flashfocus/random.html
en hier een screenshot moesten de boxjes maar niet wille botsen tegen elkaar
http://iamdesign.be/flashfocus/verstrengel.gif
hier nog een vraagje ivm actionscript:
ik haal uit een array (dank je voor de tip Lunchbox ^^) x-aantal movieclips die ik random over het scherm laat bewegen.
Nu zou het leuk zijn moesten die boxjes als ze tegen elkaar knallen ook een andere richting zouden kiezen ipv elkaar gewoon te overlappen => dus ik gebruik de hittest van AS.
Nu stelt het probleem zich dat er idd wordt gecontroleerd als ze zich elkaar raken, maar als ik ze een nieuwe coordinaat toewijs (weer random) dan geraken ze precies in elkaar "verstrengeld" :-/
dus gedaan leuk effect

dit is de code:
Code:
var arrNamen:Array = new Array;
arrNamen[0] = "nul";
arrNamen[1] = "een";
for(var i:Number = 0; i < arrNamen.length; i++)
{
this["blok"+i] = this.attachMovie("mov_aboutSnipper", "blok"+i, i);
this["blok"+i].txtfield.text = arrNamen[i];
this["blok"+i]._x = Math.random()*400 + 20;
this["blok"+i]._y = Math.random()*100 + 20;
this["blok"+i].dx = Math.round(Math.random()*400);
this["blok"+i].dy = Math.round(Math.random()*100);
this["blok"+i].onEnterFrame = moveIt
}
function moveIt()
{
this._x += (this.dx-this._x)/100;
this._y += (this.dy-this._y)/100;
if(blok0.hitTest(blok1))
{
this.dx = Math.round(Math.random()*400);
this.dy = Math.round(Math.random()*100);
}
else
{
if(Math.round(this._x) <= this.dx + 5 and Math.round(this._y) <= this.dy + 5)
{
this.dx = Math.round(Math.random()*400);
this.dy = Math.round(Math.random()*100);
}
}
}
Is het trouwens mogelijk om die hittest zo te schrijven dat elk movieclip wordt gecontroleerd, want stel dat ik nu 25 MC's aanmaak...dan moet ik toch geen 25x die hittest controlleren?
alvast bedankt

een voorbeeld van het probleem kan je hier vinden: http://iamdesign.be/flashfocus/random.html
en hier een screenshot moesten de boxjes maar niet wille botsen tegen elkaar

http://iamdesign.be/flashfocus/verstrengel.gif
