55 lines
1.2 KiB
JavaScript
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() {
|
|
|
|
}); |