



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
【移動應用開發(fā)技術(shù)】HTML5實現(xiàn)下雪實例
下雪實例知識點:canvas畫布數(shù)組繪畫函數(shù)
效果:源碼:<!doctype
html>
<html
lang="en">
<head>
<meta
charset="UTF-8">
<meta
name="Generator"
content="">
<meta
name="Author"
content="">
<meta
name="Keywords"
content="">
<meta
name="Description"
content="">
<title>下雪</title>
<style>
*{padding:0;margin:0}
html{overflow:hidden}
</style>
</head>
<body>
<canvas
id="canvas"
></canvas>
<audio
src="/Files/DownLoad/sound1/201210/2178.mp3"
autoplay
loop/>
<audio
src="/Files/DownLoad/sound1/201205/1430.mp3"
autoplay
loop/>
<script
type="text/javascript">
window.onload
=
function(){
//獲取畫布對象
var
canvas
=
document.getElementById("canvas");
//獲取畫布的上下文
var
context
=canvas.getContext("2d");
//獲取瀏覽器屏幕的寬度和高度
var
w
=
window.innerWidth;
var
h
=
window.innerHeight;
//設(shè)置canvas的寬度和高度
canvas.width
=
w;
canvas.height
=
h;
//1:如何產(chǎn)生雪花,一個圓
,arc(x,y,r,start,end)
//初始化雪花數(shù)量
var
num
=
200;
//雪花數(shù)組
var
snows
=
[];
for(var
i=0;i<num;i++){
//x,y圓心掉的坐標位置,r代表圓的半徑,d每個圓的每個圓之間的間距,c代表的顏色
var
r
=
randColor();
snows.push({
x:Math.random()*w,
y:Math.random()*h,
r:Math.random()*10,
d:Math.random()*num
});
};
//繪畫的函數(shù)
function
draw(){
context.clearRect(0,0,w,h);
context.beginPath();
for(var
i=0;i<num;i++){
var
snow
=
snows[i];
context.fillStyle
=
"rgba(255,255,255,0.9)";
context.moveTo(snow.x,snow.y);
context.arc(snow.x,snow.y,snow.r,0,Math.PI*2);
}
context.fill();
//掉落
drop();
};
var
angle
=
0;
function
drop()
{
angle
+=
0.01;
for(var
i
=
0;
i
<
num;
i++){
var
p
=
snows[i];
//記住兩個公式:Math.sin(弧度)返回是一個0
1
-1
的數(shù)字
//math.cos(1
0
-1
)
自由體,
p.y
+=
Math.cos(angle+p.d)
+
1
+
p.r*0.625;
p.x
+=
Math.sin(angle)
*
8
;
//如果雪花到了邊界,進行邊界處理
if(p.x
>
w+5
||
p.x
<
-5
||
p.y
>
h){
if(i%4
>
0)
{
snows[i]
=
{x:
Math.random()*w,
y:
-10,
r:
p.r,
d:
p.d};
}else{
//控制方向
if(Math.sin(angle)
>
0){
snows[i]
=
{x:
-5,
y:
Math.random()*h,
r:
p.r,
d:
p.d};
}else{
snows[i]
=
{x:
w+5,
y:
Math.random()*h,
r:
p.r,
d:
p.d};
}
}
}
}
};
//執(zhí)行和調(diào)用函數(shù)
draw();
setInterval(draw,10);
//隨機顏色
function
randColor(){
var
r
=
Math.floor(Math.random()
*
256);
var
g
=
Math.floor(Math.random()
*
256)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 經(jīng)濟責任審計報告
- 2025年度高校畢業(yè)生就業(yè)實習保障協(xié)議書
- 2025年度馬術(shù)俱樂部項目合作協(xié)議書-馬術(shù)俱樂部青少年馬術(shù)俱樂部合作約定
- 二零二五年度政府辦公樓無償租用合同書
- 大連市2025年度租賃房屋押金管理合同
- 二零二五年度智慧城市建設(shè)項目多人合伙股東協(xié)議書
- 二零二五年度木材銷售代理服務合同樣本
- 2025年度湖南省勞動合同電子檔案管理規(guī)范
- 二零二五年度租車保險配套服務合同模板
- 二零二五年度展會現(xiàn)場醫(yī)療急救服務合同
- 講誠信課件教學課件
- 靜脈治療專科護士培訓
- 兒童歌曲課件教學課件
- 牛買賣合同范本
- 2024-2030年中國氣象服務行業(yè)運營優(yōu)勢分析與投資戰(zhàn)略規(guī)劃研究報告
- 勞務派遣投標方案(交通協(xié)管員外包項目)(技術(shù)方案)
- 金庸人物課件
- 2024年普通高等學校招生全國統(tǒng)一考試·新課標卷(化學)附試卷分析
- 人教版五年級下冊數(shù)學第2單元測試題帶答案
- 再生資源門店加盟協(xié)議書
- DB62-T 3268-2024 人民防空工程平戰(zhàn)功能轉(zhuǎn)換技術(shù)標準
評論
0/150
提交評論