-
课程内容查看全部
-
HTML、css基础 JavaScript基础Canvas基础查看全部
-
只能用 === 运算来测试某个值是否是未定义的,因为 == 运算符认为 undefined 值等价于 null。 null 表示无值,而 undefined 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。查看全部
-
beginPath() 方法开始一条路径或重置当前路径。 closePath() 创建从当前点回到起始点的路径。 strokestyle() 设置或返回用于笔触的颜色、渐变或模式。 stroke() 绘制已定义的路径。 linewidth()设置或返回当前的线条宽度。 linecap()设置或返回线条的结束端点样式。 globalAlpha 透明度查看全部
-
在for循环前后加上两个API save(); 和 restore(); 这一对API是告诉画布,告诉场景,在这两个API之间的样式定义只在这两个API之间起作用。 一旦出去这个restore呢,其他的样式还是会被恢复的,查看全部
-
requestAnimFrame(); 是一个比较科学的API,相对于setInterval和setTimeout来讲,requestAnimFrame会更科学 requestAnimFrame的原理就是:当前绘制完成之后,去根据你机器的性能来确定间隔多长时间绘制下一帧,所以它是一个智能计算的过程。而setInterval和setTimeout会有一个固定的时间,比如我们指定给它每过60ms就绘制一帧,万一你绘制的内容非常大,以至于60ms之内不能完成,而requestAnimFrame会是一个科学的方法, 但是也有一个问题:fps————frame per second(每秒多少帧). 使用requestAnimFrame会导致帧与帧之间的时间间隔是不固定的,所以有一个动态的时间间隔。查看全部
-
游戏思路查看全部
-
1.监听、获取鼠标位置 addEventListener(),offSetX||layerX 2.鱼坐标靠近鼠标坐标 lerpDistance() 3.鱼嘴角度 朝向鼠标 Math.atan2(),lerpAngle() 4.画布偏移 translate(),画布旋转 rotate()查看全部
-
因为动画效果是靠gameloop一次一次地循环载入canvas形成的,如果不清除的话,多次载入的画布会重叠在一起,就形成了重影,也就是看上去线条变宽了一样。而cxt2之所以不用清除,是因为canvas2每次重新载入时都是先载入背景图片,直接就把前一次画布上的东西全覆盖了,所以不用清除。这就是两种清除画布的方法,一种直接调用清除方法,一种用背景覆盖。查看全部
-
目标规划查看全部
-
2-1 9:39查看全部
-
绘制海葵查看全部
-
Fgh查看全部
-
Fhhh查看全部
-
1-2 8:39查看全部
举报
0/150
提交
取消