課程
/前端開發(fā)
/HTML/CSS
/canvas實(shí)現(xiàn)星星閃爍特效
背景圖只要畫一次就好了呀。。。
2015-03-27
源自:canvas實(shí)現(xiàn)星星閃爍特效 2-3
正在回答
是這樣的,畫面上我們看到的所有內(nèi)容都是畫在canvas上的,為了產(chǎn)生星星的動畫效果,我們需要把前一幀畫的星星從canvas上擦除,再畫上下一幀。由于我們只使用了一個canvas,所以在擦除星星的同時(shí),也把背景顏色和girl圖片同時(shí)擦除掉了,所以drawGirl需要放在loop中不斷重新畫。
當(dāng)然你也可以把背景和drawGirl放在另一個canvas中,并且這2個canvas正好以正確的順序疊在一起,這樣背景顏色和girl圖片只需要畫一次就好了。
但我們做的這個小實(shí)踐對渲染的壓力不是很大,所以在一個canvas中畫就可以了。
不過你會提出疑問是很值得鼓勵的。
為什么繪制圖片和背景也必須放在gameLoop里面呢?我移到init()里面執(zhí)行就出錯。
function?gameLoop()?{ window.requestAnimFrame(gameLoop);??? var?now?=?Date.now(); deltaTime?=?now?-?lastTime;??? lastTime?=?now; fillCanvas();??//?? drawGirl();??//?? drawStars(); aliveUpdate(); }
x兔子 提問者
舉報(bào)
使用HTML5實(shí)現(xiàn)輪播圖片上的序列幀,進(jìn)行拆分講解,逐步實(shí)現(xiàn)目標(biāo)
1 回答main.js文件里面為什么我把fillCanvas(); drawGirl();這兩個方法寫到gameloop方法外面,init方法里面就沒有運(yùn)動效果呢
1 回答為什么要用function init()??
1 回答為什么把a(bǔ)liveUpdate里更新的內(nèi)容在update內(nèi)效果就不好呢?
1 回答在創(chuàng)建starsObj類時(shí),this.x與this.y有什么意義?在init中還不是一樣要用到,那么在Inti中可以寫出來不行嗎??
1 回答請問,填充背景為什么要循環(huán),求解答
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2015-03-30
是這樣的,畫面上我們看到的所有內(nèi)容都是畫在canvas上的,為了產(chǎn)生星星的動畫效果,我們需要把前一幀畫的星星從canvas上擦除,再畫上下一幀。由于我們只使用了一個canvas,所以在擦除星星的同時(shí),也把背景顏色和girl圖片同時(shí)擦除掉了,所以drawGirl需要放在loop中不斷重新畫。
當(dāng)然你也可以把背景和drawGirl放在另一個canvas中,并且這2個canvas正好以正確的順序疊在一起,這樣背景顏色和girl圖片只需要畫一次就好了。
但我們做的這個小實(shí)踐對渲染的壓力不是很大,所以在一個canvas中畫就可以了。
不過你會提出疑問是很值得鼓勵的。
2016-09-06
為什么繪制圖片和背景也必須放在gameLoop里面呢?我移到init()里面執(zhí)行就出錯。