canvas实现可调参数的下雪积雪粒子动画效果代码
代码语言:html
所属分类:粒子
代码描述:canvas实现可调参数的下雪积雪粒子动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
/*
global
*/
*, *::before, *::after {
margin: 0;
padding: 0;
border: 0;
box-sizing: border-box;
}
*:focus {
outline: none;
}
body {
height: 100vh;
background-color: #111;
overflow: hidden;
}
canvas {
touch-action: none;
}
</style>
</head>
<body translate="no">
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/Stats-16.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/dat.gui-min.js"></script>
<script >
//---
'use strict';
//---
console.clear();
//---
let stats = null;
let gui = null;
//---
let w = 0;
let h = 0;
let animationFrame = null;
let isTouchDevice = false;
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d', { willReadFrequently: false, alpha: false });
let imageData = null;
let imageDataWidth = 0;
let data = null;
let buffer = null;
let bufferBorder = 0;
const center = { x: w / 2, y: h / 2 };
const border = { left: 0, top: 1, right: w, bottom: h };
let pointer = { x: 0, y: 0 };
let pointerPos = { x: center.x, y: center.y };
let pointerDownButton = -1;
let pointerActive = false;
const pointerMoveTimeoutTime = 2500;
//---
const particlePropertiesAmount = 7;
let particleAmount = 75000;
let particleHolderLength = 0;
let particleHolder = null;
let particleSpeedFactor = 10;
let particlesRGBMax = 255;
let particlesRGBMin = 25;
let particleSpeedFactorSquare = particleSpeedFactor * particleSpeedFactor;
let deltaTime = 0.175; //0.075;
let waveFrequency = 0.005;
let waveAmplitude = 2;
let windStrength = 0.055;
//---
let clearPixelData = null;
let clearRowSize = 0;
let clearRow = null;
let bgColorR = 17;
let bgColorG = 17;
let bgColorB = 17;
//---
let sinTableLength = 0;
let sinTable = null;
//---
function init() {
isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;
//---
if (isTouchDevice === true) {
canvas.addEventListener('touchmove', cursorMoveHandler, false);
canvas.addEventListener('touchend', cursorLeaveHandler, .........完整代码请登录后点击上方下载按钮下载查看
















网友评论0