mattrock23
January 13th, 2009, 08:30 PM
Updated with more particles.
http://megaswf.com/view/f205594ff7c729567a729345a4c81dc8.html (http://megaswf.com/view/f205594ff7c729567a729345a4c81dc8.html)
I am pretty sure this is not how a particle splitter would look or if such a thing even exists, but that's what it looked like to me and so that's the naming convention I used.
Frame 1 code:
var particle:Particle = new Particle();
particle.x = -10;
addChild(particle);
particle.setUp(100, 0);
stop();Particle.as
package {
import flash.display.*;
import flash.events.*;
public class Particle extends MovieClip {
private var angleChange:Number = 0;
private var centerX:Number = 0;
private var centerY:Number = 0;
private var expulsionFactor:Number = 0;
private var radialDistance:Number = 0;
private var angle:Number = 0;
public function Particle() {
}
public function setUp(rD:Number, eF:Number):void {
radialDistance = Math.random()*rD;
expulsionFactor = eF;
angle = Math.random()*360;
angleChange = Math.random()*5+3;
centerX = stage.stageWidth / 2;
centerY = stage.stageHeight / 2;
this.addEventListener(Event.ENTER_FRAME, animate);
}
function deg2rad(degree):Number {
return degree * (Math.PI / 180);
}
function animate(e:Event):void {
var radian = deg2rad(angle);
if(radialDistance < 5 && radialDistance > 0) {
expulsionFactor = Math.random()*20+20;
if(this.stage.numChildren < 500) {
var splitParticle:Particle = new Particle();
splitParticle.x = -10;
stage.addChild(splitParticle);
splitParticle.setUp(0, 40);
}
}
radialDistance += expulsionFactor;
this.x = centerX + radialDistance * Math.cos(radian);
this.y = centerY + radialDistance * Math.sin(radian);
if(expulsionFactor > 0) {
expulsionFactor -= 5;
} else {
expulsionFactor = 0;
}
radialDistance -= 2;
angle += angleChange;
angle %= 360;
}
}
}
http://megaswf.com/view/f205594ff7c729567a729345a4c81dc8.html (http://megaswf.com/view/f205594ff7c729567a729345a4c81dc8.html)
I am pretty sure this is not how a particle splitter would look or if such a thing even exists, but that's what it looked like to me and so that's the naming convention I used.
Frame 1 code:
var particle:Particle = new Particle();
particle.x = -10;
addChild(particle);
particle.setUp(100, 0);
stop();Particle.as
package {
import flash.display.*;
import flash.events.*;
public class Particle extends MovieClip {
private var angleChange:Number = 0;
private var centerX:Number = 0;
private var centerY:Number = 0;
private var expulsionFactor:Number = 0;
private var radialDistance:Number = 0;
private var angle:Number = 0;
public function Particle() {
}
public function setUp(rD:Number, eF:Number):void {
radialDistance = Math.random()*rD;
expulsionFactor = eF;
angle = Math.random()*360;
angleChange = Math.random()*5+3;
centerX = stage.stageWidth / 2;
centerY = stage.stageHeight / 2;
this.addEventListener(Event.ENTER_FRAME, animate);
}
function deg2rad(degree):Number {
return degree * (Math.PI / 180);
}
function animate(e:Event):void {
var radian = deg2rad(angle);
if(radialDistance < 5 && radialDistance > 0) {
expulsionFactor = Math.random()*20+20;
if(this.stage.numChildren < 500) {
var splitParticle:Particle = new Particle();
splitParticle.x = -10;
stage.addChild(splitParticle);
splitParticle.setUp(0, 40);
}
}
radialDistance += expulsionFactor;
this.x = centerX + radialDistance * Math.cos(radian);
this.y = centerY + radialDistance * Math.sin(radian);
if(expulsionFactor > 0) {
expulsionFactor -= 5;
} else {
expulsionFactor = 0;
}
radialDistance -= 2;
angle += angleChange;
angle %= 360;
}
}
}