bolt-engine/demos/fireworks/demo.js
2015-01-22 22:56:00 +03:30

55 lines
1.2 KiB
JavaScript

function Firework(props) {
var particle = Bolt.Particle(props);
particle.type = props.type || 0;
particle.age = Math.random() * (5 - 3) + 3;
particle.damping = 0.93;
particle.velocity = props.velocity || Bolt.Vector.random([-8, 8], [-60, -12], [-5, 0]);
particle.color = props.color;
return particle;
}
var fireworks = [];
var count = 0;
Bolt.Play.start(function() {
count++;
if(count === 8) {
fireworks.push(new Firework({
type: 0,
position: Bolt.Vector(Bolt._canvas.width/2, Bolt._canvas.height/2, 0),
color: '#FF3636',
mass: 2
}));
count = 0;
}
for(var i = 0, len = fireworks.length; i < len; i++) {
var fw = fireworks[i];
fw.age -= Bolt.Frames.elapsed;
if(fw.age < 0) {
fw.destroy();
fireworks.splice(i, 1);
i--;
len--;
if(fw.type === 1) continue;
for(var x = 0; x < 5; x++) {
var vel = fw.velocity.clone().add(Bolt.Vector.random([-8, 8], [-10, 10], [-5, 5]));
var childFirework = new Firework({
type: 1,
position: fw.position.clone(),
velocity: vel,
color: '#FFA400',
mass: 1
});
fireworks.push(childFirework);
}
}
}
}).then(function() {
});