Vector2与perlin打造粒子流动效果
代码语言:html
所属分类:粒子
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<html>
<head>
<meta charset="UTF-8">
<script src="http://repo.bfw.wiki/bfwrepo/js/Vector2.min.js"></script>
<script src="http://repo.bfw.wiki/bfwrepo/js/perlin.js"></script>
<style>
body {
background-color: black;
}
.canvas {
position: absolute;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
}
.codepen-link {
position: absolute;
bottom: 30px;
right: 30px;
height: 40px;
width: 40px;
z-index: 10;
border-radius: 50%;
box-sizing: border-box;
background-position: center center;
background-size: cover;
opacity: 0.5;
-webkit-transition: all 0.25s;
transition: all 0.25s;
}
.codepen-link:hover {
opacity: 0.8;
box-shadow: 0 0 6px #efefef;
}
.instructions {
position: absolute;
bottom: 30px;
left: 30px;
color: #cfcfff;
font-family: "Poppins", sans-serif;
font-size: 1em;
line-height: 1.25em;
pointer-events: none;
}
</style>
</head>
<body>
<canvas class="mycanvas" width="745" height="706"></canvas>
<div class="instructions">
<p>
Hover to repel particles
</p>
<p>
Mouse x / y position changes noise frequency
</p>
<p>
Mouse down to attract particles
</p>
<p>
Double-click to add an attractor
</p>
<p>
Double-click attractors to remove
</p>
</div>
<script>
/* jshint esversion: 6 */
((main) => {
main(this, document, {
v2: Vector2,
noise: noise
});
})((window, document, lib, undefined) => {
'use strict';
const PI = Math.PI,
TAU = PI * 2,
ABS = Math.abs,
RAND = Math.random,
ROUND = Math.round,
SIN = Math.sin,
COS = Math.cos;
class Config {
constructor(opts) {
for (let opt in opts) {
this.set(opt, opts[opt]);.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0