为了账号安全,请及时绑定邮箱和手机立即绑定
我发现可以直接balls = balls.filter(item => item.x > 0 && item.x < width)一句话就实现性能优化
将滚出画布的小球进行删除处理,使用filter过滤函数方便些,可以边遍历边处理,课程上的是先遍历一边将符合要求的小球和不符合要求的小球以cnt进行分割,然后在遍历一边,逐项删除数组的尾部,使用filter简单易懂。
balls=balls.filter((item)=>{
return item.x+RADIUS>0 && item.x - RADIUS < WINDOW_WIDTH;
});

最新回答 / 柯kk
这个是因为你的时间没有设置对,倒计时结束了,所以出现上面的问题<...图片...>

最新回答 / qudawei
可以控制一下canvas上的小球数量,当小球数量达到一定值时就不画了。当切到其他页面小球不动这个是浏览器的机制。
优化的不管用啊,小球数目仍然一直增加

最新回答 / qq_唯恐动辄得咎_04292342
93 + 7 * 2 + 1 = 108;93 是最后一个秒钟个位数字的起始 x 位置;7 * 2 + 1 是最后一个秒针个位数字所占空间;
我的效果完全不一样, 能量损耗不能简单的以摩擦系数进行衰减, 否则后面就是小球的闪烁效果了..

已采纳回答 / qq_守护_29
document.getElementById('canvas')
你多写了个s
老师太厉害了!支持老师的课程!

最新回答 / qq_幸福落雨_0
cxt.arc(x + j * 2*(RADIUS + 1) + (RADIUS + 1), y + i * 2*(RADIUS + 1) + (RADIUS + 1), RADIUS, 0, 2 * Math.PI);你把y + i * 2*(RADIUS + 1) 里面的i写成j是错的,纠正一下,把这里的j改成i

最赞回答 / asteriaGirl
<...图片...>去掉一个,<...图片...> 改成 piece.p[i]. y

最新回答 / Just_to_do
一个是从0开始循环,一个是从1开始循环啊

最新回答 / Frewen清澄
<...code...>在上述代码中需要将nums.p.legth改为nums.p.length 单词拼写错误
课程须知
1.要对HTML+CSS相关标签有所掌握;2.对网页布局知识有简单的了解;3.掌握一定的JS基础知识
老师告诉你能学到什么?
通过学习Cancas倒计时效果的基础知识:比如球形的绘制,动画的基础原理,让Canvas帮助我们制作出绚丽的效果,力图每一个课程除了介绍知识,还能帮助大家使用Canvas制作出属于自己的动画和游戏作品。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消