canvas光影喷射回弹动画效果
代码语言:html
所属分类:动画
代码描述:canvas光影喷射回弹动画效果
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
canvas {
position: absolute;
height: 100%;
width: 100%;
left: 0;
top: 0;
cursor: crosshair;
background-color: Blue;
}
</style>
</head>
<body>
<canvas></canvas>
<script type="text/javascript">
bgColor = '#000'; gravity = 0.5; particleColor = '#279'; canvas = document.querySelector('canvas'); ctx = canvas.getContext('2d'); (onresize = function() {
width = canvas.width = canvas.clientWidth; height = canvas.height = canvas.clientHeight; o = {
x: Math.floor(width/2), y: Math.floor(height/2)}; edge = {
top: -o.y, right: width-o.x, bottom: height-o.y, left: -o.x
}})(); particles = {}; newParticle = (function() {
var nextIndex = 0; return function(x, y, r, o, c, xv, yv, rv, ov) {
particles[++nextIndex] = {
index: nextIndex, x: x, y: y, r: r, o: o, c: c, xv: xv, yv: yv, rv: rv, ov: ov
};
};
})(); fireballs = {}; newFireball = (function() {
var nextIndex = 0; return function(x, y, xv, yv, life) {
fireballs[++nextIndex] = {
index: nextIndex, x: x, y: y, xv: xv, yv: yv, life: life
};
};
})(); mouse = {
x: 0,
y: 0,
d: 0
}; onmousemove = function(e) {
mouse.x = e.clientX-o.x; mouse.y = e.clientY-o.y; var dx = mouse.x-pos1.x,
dy = mouse.y-pos1.y; mouse.d = Math.sqrt(dx*dx+dy*dy);
}; charging = false; pos1 = {
x: 0,
y: 0
}; showInstructions = true; onmousedown = function(e) {
pos1.x = mouse.x; pos1.y = mouse.y; charging = true; showInstructions = false;
}; onmouseup = function() {
if (charging) {
newFireball(mouse.x, mouse.y, (pos1.x-mouse.x)*0.03, (pos1.y-mouse.y)*0.03, 600); charging = false;
}}; time = 0; requestAnimationFrame(loop = function() {
ctx.setTransform(1, 0, 0, 1, 0, 0); ctx.glo.........完整代码请登录后点击上方下载按钮下载查看
网友评论0