終于分析完了,有興趣的可以來這看看,有源碼,有效果展示,也有我的一些小分析。地址:https://github.com/CruxF/IMOOC/tree/master/HTML5?1533109391385
2018-08-01
最新回答 / 慕絲6324622
我明白了。。因為背景圖,海葵和果實都是畫在一張畫布上的,循環的重畫,而背景圖這個是在之前執行的,所以重畫背景圖之后,會使上一次所畫的內容被覆蓋,相當于“清除”;
2018-07-22
最新回答 / 慕妹5034279
大魚的動作也可以使用deltaTime只是使用deltaTime是為了保持勻速運動的效果而大魚的運動使用lerpDistance()方法,大魚位置越趨近于鼠標位置速度就越慢,本來就是變速運動,不用deltaTime也可以
2018-07-18
最贊回答 / 前端工程師666777888
fruitObj.prototype.draw=function?()?{? ctx2.clearRect(0,0,canWidth,canHeight);//加上這句就行了 for(var?i=0;i&???this.num;i++){ ????//????draw ????//????find?a?ane,grow,fly?up ????????if(this.l[i]&e; =14){ ????...
2018-07-07
默認生成的魚,頭是向左的,在Canvas坐標里面的角度,這個水平向左就是1 * Math.PI(180度位置)。所以魚自身的角度實際是多了一個Math.PI,也就是什么都不做就自帶180度。
計算鼠標與魚的夾角beta后,必須再減去原來多出來的一個PI(實際上就是讓魚頭先旋轉回0度,或者說減回180度)。
在那個lerpAngle函數做判斷,不如直接在計算beta值(夾角)時減去一個PI。
var beta = Math.atan2(deltaY, deltaX) - Math.PI;
計算鼠標與魚的夾角beta后,必須再減去原來多出來的一個PI(實際上就是讓魚頭先旋轉回0度,或者說減回180度)。
在那個lerpAngle函數做判斷,不如直接在計算beta值(夾角)時減去一個PI。
var beta = Math.atan2(deltaY, deltaX) - Math.PI;
2018-07-04