



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第JavaScript+canvas實(shí)現(xiàn)框內(nèi)跳動(dòng)小球本文實(shí)例為大家分享了JavaScript+canvas實(shí)現(xiàn)框內(nèi)跳動(dòng)小球的具體代碼,供大家參考,具體內(nèi)容如下
效果如下:
思路:
1.制定畫布,確定好坐標(biāo)
2.繪制出圓形小球
3.給圓一個(gè)原始坐標(biāo),xy軸的速度
4.每20毫秒刷新一次,達(dá)到變化的目的
5.判斷邊緣
全部代碼及釋義如下:
!DOCTYPEhtml
htmllang="en"
head
metacharset="UTF-8"
metaname="viewport"content="width=device-width,initial-scale=1.0"
metahttp-equiv="X-UA-Compatible"content="ie=edge"
titleDocument/title
/head
body
canvasid="canvas"
當(dāng)前瀏覽器不支持canvas,請(qǐng)更新瀏覽器或者升級(jí)瀏覽器后再試
/canvas
script
//x:小球原始x坐標(biāo),y:小球原始y坐標(biāo),r:小球半徑,vx:x軸速度,vy:y軸的速度(速度都以向量表示,所以可為負(fù)數(shù))
varball={x:512,y:100,r:20,vx:-8,vy:8,color:'#005588'}
window.onload=function(){
varcanvas=document.getElementById("canvas");
//制定canvas畫布的大小
canvas.width=860;
canvas.height=600;
//判斷瀏覽器是否支持canvas
if(canvas.getContext("2d")){
//下面所有調(diào)用的函數(shù)都是基于context這個(gè)上下文環(huán)境來進(jìn)行的
varcontext=canvas.getContext("2d");
setInterval(()={
render(context)
update()
},20);
}else{
alert("當(dāng)前瀏覽器不支持canvas,請(qǐng)更新瀏覽器或者升級(jí)瀏覽器后再試");
}
};
//十六進(jìn)制顏色隨機(jī)
functioncolor16(){
varr=Math.floor(Math.random()*256);
varg=Math.floor(Math.random()*256);
varb=Math.floor(Math.random()*256);
varcolor='#'+r.toString(16)+g.toString(16)+b.toString(16);
returncolor;
}
//小球的坐標(biāo)的刷新
functionupdate(){
ball.x+=ball.vx//x軸坐標(biāo)vx是x軸的速度,勻速增加
ball.y+=ball.vy
//y軸坐標(biāo)由于g的原因,速度是勻變速
//觸底的條件
if(ball.y=canvas.height-ball.r){
ball.color=color16()
ball.y=canvas.height-ball.r
//觸下底
ball.vy=-ball.vy
}elseif(ball.x=ball.r){
ball.color=color16()
ball.x=ball.r//觸左
ball.vx=-ball.vx
}elseif(ball.x=canvas.width-ball.r){
ball.color=color16()
ball.x=canvas.width-ball.r
//觸右
ball.vx=-ball.vx
}elseif(ball.y=ball.r){
ball.color=color16()
ball.y=ball.r
//觸上
ball.vy=-ball.vy
}
}
//繪制圓形小球
functionrender(cxt){
//利用clearRect,清空畫布
cxt.clearRect(0,0,cxt.canvas.width,cxt.canvas.height)
cxt.fillStyle=ball.color
cxt.beginPath()
//context.arc(圓心橫坐標(biāo),原型縱坐標(biāo),半徑的長度,繪制的起點(diǎn),繪制的終點(diǎn))
cxt.arc(ball.x,ball.y,ball.r,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《跨境電商實(shí)務(wù)》實(shí)訓(xùn)指導(dǎo)書:項(xiàng)目5、6 速賣通滿減優(yōu)惠活動(dòng)設(shè)置、PayPal注冊(cè)流程
- 2025屆遼寧省沈陽二中化學(xué)高一下期末學(xué)業(yè)水平測試模擬試題含解析
- 安全影像資料記錄
- 云南省昭通市市直中學(xué)2024-2025學(xué)年高二下學(xué)期第二次月考(6月)地理試卷(含答案)
- 內(nèi)蒙古自治區(qū)呼倫貝爾市扎蘭屯市四校聯(lián)考2024-2025學(xué)年七年級(jí)下學(xué)期期中考試生物試卷(含答案)
- 河北秦皇島市昌黎第一中學(xué)2025屆高三下學(xué)期第六次飛躍考試政治試卷(含答案)
- 小學(xué)生音樂特色活動(dòng)方案
- 小年活動(dòng)餐飲策劃方案
- 工程開工儀式活動(dòng)方案
- 小學(xué)生玩具募集活動(dòng)方案
- 2025至2030中國糠酸行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 江西省上饒市廣信區(qū)2023-2024學(xué)年七年級(jí)下學(xué)期6月期末考試數(shù)學(xué)試卷(含答案)
- poct科室管理制度
- 數(shù)據(jù)標(biāo)注教學(xué)課件
- 2025年山東高考化學(xué)真題及答案
- 2025年人教部編版語文五年級(jí)下冊(cè)期末檢測真題及答案(2套)
- 《中醫(yī)養(yǎng)生學(xué)》課件-八段錦
- 【MOOC】電路分析基礎(chǔ)-北京郵電大學(xué) 中國大學(xué)慕課MOOC答案
- 湖南省長沙市雨花區(qū)2023-2024學(xué)年五年級(jí)下學(xué)期期末考試英語試題
- GA/T 1454-2018信息安全技術(shù)網(wǎng)絡(luò)型流量控制產(chǎn)品安全技術(shù)要求
- GA 38-2021銀行安全防范要求
評(píng)論
0/150
提交評(píng)論