var canvas; var ctx; var starPool = new Array(); var stop = false; (function() { var resourceCache = {}; var loading = []; var readyCallbacks = []; // Load an image url or an array of image urls function load(urlOrArr) { if(urlOrArr instanceof Array) { urlOrArr.forEach(function(url) { _load(url); }); } else { _load(urlOrArr); } } function _load(url) { if(resourceCache[url]) { return resourceCache[url]; } else { var img = new Image(); img.onload = function() { resourceCache[url] = img; if(isReady()) { readyCallbacks.forEach(function(func) { func(); }); } }; resourceCache[url] = false; img.src = url; } } function get(url) { return resourceCache[url]; } function isReady() { var ready = true; for(var k in resourceCache) { if(resourceCache.hasOwnProperty(k) && !resourceCache[k]) { ready = false; } } return ready; } function onReady(func) { readyCallbacks.push(func); } })(); $(function() { canvas=document.getElementById("bg"); ctx = canvas.getContext("2d"); canvas.width = $(document).width()-20; canvas.height = $(document).height()-20; //starPool[0] = new sparkle(120, 100, false, 0.4); initiate(); main(); //star(ctx,100,100,40,5,0.5); }); var requestAnimFrame = (function(){ return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback){ window.setTimeout(callback, 1000 / 30); }; })(); function initiate(){ for(var i = 0; i<1; i++){ starPool[i] = new sparkle(50,50, false, 0.05); } } function main(){ ctx.clearRect(0, 0, $(document).width()-20, $(document).height()-20); callframe(); if(stop==true){ console.log("ended"); }else{ requestAnimFrame(main); } } function callframe(){ for(var i = 0; i<15; i++){ if(starPool[i] != null){ if(starPool[i].dead != true){ starPool[i].refresh(); }else{ starPool[i] = null; starPool[i] = newSparkle(); } }else{ starPool[i] = newSparkle(); } } } function newSparkle(){ var xtrue = false; var ytrue = false; var x = 0; var y = 0; while(xtrue==false){ x = Math.floor(Math.random() * (($(document).height()-50) - 50 + 1)) + 50; $.each( starPool, function( nr, star ) { if(star != null){ if((star.posx-50)>x || (star.posx+50)y || (star.posy+50)=1){ this.full=true; }else{ this.opacity +=0.01 * this.speed; } } if(this.full==true){ this.opacity -=0.01; } if(this.opacity <= 0){ this.dead = true; } star(ctx, posx, posy, 30, 5, 0.5, this.opacity); } }