js实现canvas粒子飞舞动画效果代码
代码语言:html
所属分类:粒子
代码描述:js实现canvas粒子飞舞动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<html>
<head>
<style>
html, body {
overflow: hidden;
margin: 0;
}
html {
background: #14191C;
}
p {
position: absolute;
bottom: 1em;
width: 100%;
color: rgba(255, 255, 255, 0.25);
text-align: center;
pointer-events: none;
transition: opacity 1s ease-in-out;
}
</style>
</head>
<body>
<p style="opacity: 0;">
Click near Boids to disperse group.
</p>
<script>
// start particle simulation
simulate(
'2d', {
init: function() {
this.spray(150, function() {
return [
null,
null,
Vector.create(
this.width * Math.random(),
this.height * Math.random()
),
Vector.random(1),
.75 + (Math.random() * .5),
100 * Math.random(), [
this.behavior.cohesion(),
this.behavior.alignment(),
this.behavior.separation(),
this.behavior.limit(1 + Math.random()),
this.behavior.wrap(5),
this.behavior.move()
]
]
})
},
tick: function() {},
beforePaint: function() {
this.clear();
},
paint: function(particle) {
var p = particle.position;
var v = particle.velocity;
var s = particle.stimulated || 0;
var l = particle.life;
this.paint.circle(p.x, p.y, v.magnitudeSquared, 'hsla(' + v.angle + ',100%,50%,1)');
},
afterPaint: function() {
// nothing
},
action: function(x, y) {
// disperse if near
this.particles.forEach(function(p) {
if (Vector.distanceSquared(p.position, {
x: x,
y: y
}) < 4000) {
p.velocity.randomize(100);
p.position.x += p.velocity.x;
.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0