终于分析完了,有兴趣的可以来这看看,有源码,有效果展示,也有我的一些小分析。地址: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