canvas炫酷烟花绽放粒子动画效果代码

代码语言:html

所属分类:粒子

代码描述:canvas炫酷烟花绽放粒子动画效果代码

代码标签: canvas 炫酷 烟花 绽放 粒子 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >
<head>
 
<meta charset="UTF-8">
<style>
    body
, html {
   
background-color: #000;
   
color: #fff;
   
width: 100%;
   
height: 100%;
   
margin: 0;
   
padding: 0;
   
overflow: hidden;
}
canvas
{
   
position:absolute;
   
top:0;
   
left:0
}
</style>

</head>
<body>

<canvas id="canvas"></canvas>

 
<script >
      (function () {
    var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
    window.requestAnimationFrame = requestAnimationFrame;
})();


var canvas = document.getElementById("canvas"),
    ctx = canvas.getContext("2d"),
    width = 0,
    height = 0,
    vanishPointY = 0,
    vanishPointX = 0,
    focalLength = 300,
    angleX = 180,
    angleY = 180,
    angleZ = 180,
    angle = 0,
    cycle = 0,
    colors = {r : 255, g : 0, b : 0},
    lastShot = new Date().getTime();

canvas.width = width;
canvas.height = height;


function drawStar(cx, cy, spikes, outerRadius, innerRadius) {
    var rot = Math.PI / 2 * 3;
    var x = cx;
    var y = cy;
    var step = Math.PI / spikes;

    ctx.strokeSyle = "#000";
    ctx.beginPath();
    ctx.moveTo(cx, cy - outerRadius)
    for (i = 0; i < spikes; i++) {
        x = cx + Math.cos(rot) * outerRadius;
        y = cy + Math.sin(rot) * outerRadius;
        ctx.lineTo(x, y)
        rot += step

        x = cx + Math.cos(rot) * innerRadius;
        y = cy + Math.sin(rot) * innerRadius;
        ctx.lineTo(x, y)
        rot += step
    }
    ctx.lineTo(cx, cy - outerRadius)
    ctx.closePath();
    ctx.lineWidth=2;
    ctx.strokeStyle='goldenrod';
    ctx.stroke();
    ctx.fillStyle='yellow';
    ctx.fill();

}


/*
 *      Controls the emitter
 */
function Emitter() {
    this.reset();
}

Emitter.prototype.reset = function () {
    var PART_NUM = 200,
        x = (Math.random() * 400) - 200,
        y = (Math.random() * 400) - 200,
        z = (Math.random() * 800) - 200;
   
    this.x = x || 0;
    this.y = y || 0;
    this.z = z || 0;
   
    var color = [~~(Math.random() * 150) + 10, ~~(Math.random() * 150.........完整代码请登录后点击上方下载按钮下载查看

网友评论0