1. 程式人生 > >如何使用canvas實現多個隨機圓運動

如何使用canvas實現多個隨機圓運動

此段程式碼使用canvas畫布實現多個圓形自上向下滑落,圓的大小及顏色隨機,背景圖片可根據自己的喜好更換,只需將大小與畫布大小統一即可。

文章下附有效果圖

   <body>  

<canvasid="canvas"width="493px"height="332px"></canvas>

<scripttype="text/javascript">

var canvas=document.getElementById("canvas");//獲取<canvas>元素 var context=canvas.getContext("2d");//建立畫布物件
//建立建構函式Circle function Circle(){ this.x=Math.random()*canvas.width;//在畫布內隨機生成x值 //隨機生成三原色 this.r1 = Math.floor(Math.random()*256); this.g = Math.floor(Math.random()*256); this.b = Math.floor(Math.random()*256); this.y=-10; this.r=Math.random()*14;//隨機半徑r // 繪製圓形的方法 this.paint=function
(){ context.beginPath(); context.globalAlpha = 0.7;//設定透明度 context.strokeStyle="rgb("+this.r1+","+this.g+","+this.b+")";//將隨機生成的三原色設為圓形的顏色 context.arc(this.x,this.y,this.r,0,Math.PI*2);//繪製圓形 context.stroke(); } // 控制圓形移動的方法 this.step=function(){ this.y++ } } var circles=[]; // 建立圓形物件 function
createCircles(){ var circle=new Circle();//呼叫建構函式 circles[circles.length]=circle;//將繪製的圖形追加到陣列 } // 繪製所有圓形 function paintCircles(){ for(var i=0;i<circles.length;i++){ circles[i].paint();//遍歷陣列,將陣列內的圖形繪製 } } // 控制所有圓形運動 function stepCircles(){ for(var i=0;i<circles.length;i++){ circles[i].step(); } } //繪製一張圖片 var myimg=new Image(); myimg.src="bgg.jpg"; var time=0; //設定定時器 setInterval(function(){ context.drawImage(myimg,0,0); time++;//控制繪製時間 if(time%20==0){ createCircles(); } paintCircles(); stepCircles(); },50); </script></body>