And here are the actual effects themselves. It generates the actual effect:
function WhirlEmitter(point,color)
{
this.position = point; // Vector
this.velocity = Vector.fromAngle(0,.5); // Vector
this.spread = Math.PI/1; // possible angles = velocity +/- spread
this.drawColor = "#999"; // So we can tell them apart from Fields later
this.particleColor = color;
this.maxParticles = 100;
this.particleSize = 1;
this.numParticles = 0;
this.emissionRate = 1;
this.tether = rand(60,100);
}
WhirlEmitter.prototype.emit = function()
{
var angle = this.velocity.getAngle() + this.spread - (Math.random() * this.spread * 2);
var magnitude = this.velocity.getMagnitude();
var velocity = new Vector(0,0);//Vector.fromAngle(angle, magnitude);
var position = new Vector(this.position.x + velocity.x * 25, this.position.y + velocity.y * 25);
var particle = new Particle(position,velocity,new Vector(0,0),this.particleColor,2);
particle.action = "whirlParticle";
particle.particleColor = this.particleColor;//'rgb(' + rand(0,255) + ','+ rand(0,255) + ','+ rand(0,255) + ')'
particle.tether = rand(1,360)/100;
particle.origin = new Vector(this.position.x, this.position.y);
//this.position.x++;
return particle;
};
function whirlParticle(particle)
{
//alert(particle.life + ":" + particle.tether);
var tmpX = particle.origin.x + particle.radius * Math.cos(particle.tether);
var tmpY = particle.origin.y + particle.radius * Math.sin(particle.tether);
particle.position = new Vector(tmpX, tmpY);
particle.tether+=.25;
particle.particleSize-=.01;
if(particle.tether > 7)
{
particle.tether = .36;
particle.radius-=5;
}
if(particle.radius < 0 || particle.particleSize <= 0)
{
return "";
}
return particle;
}
Saturday, November 16
Followers
Copyright 2009 mobeamer. Powered by Blogger
Blogger Templates created by Deluxe Templates
Wordpress by Nattywp
0 comments:
Post a Comment