右边的代码snowflake.js是完成的雪花代码,初学者可能会有点难度,尝试着慢慢理解下。在canvas飘雪(中)的基础上增加了运动的一个算法,然后把整个结构给规整了下。
入口是Snowflake函数,流程如下:
雪球的变化会有一系列的参数设置,这里会用initSnow函数完成这个默认的参数选择,并增加了速率等参数设置。
雪球的坐标变化update方法:
Y轴:
this.y += this.speedY; if (this.y > this.snowSettings.maxY) { this.y -= this.snowSettings.maxY; }
this.speedY是一个增量,每次都叠加赋予,如果溢出后就会还原
X轴:
this.angle += this.speedX; if (this.angle > Math.PI * 2) { this.angle -= Math.PI * 2; } this.x = this.initialX + this.moveX * Math.sin(this.angle);
X轴的变化是有个左右移动的,所以这里回用正玄值来计算左右的位移
移动:
在renderAndUpdate方法中,通过不断的调用requestAnimationFrame达到不断刷新雪球的坐标,感觉上雪球是不断在飘落
var renderAndUpdate = function() { render(); update(); requestAnimationFrame(renderAndUpdate); }
在snowflake.js文件141行处填入任务代码
计算出雪飘在x轴坐标中移动的距离
this.x = this.initialX + this.moveX * Math.sin(this.angle);
请验证,完成请求
由于请求次数过多,请先验证,完成再次请求
打开微信扫码自动绑定
绑定后可得到
使用 Ctrl+D 可将课程添加到书签
举报
实战
实战
实战
实战
实战