1.balls数组中的元素个数有增无减,考虑将滚到画面外的小球排出balls数组;
function updateBalls(){ ...... var cut = 0; for( var i = 0 ; i < balls.length ; i++ ){ if( balls[i].x+RADIUS>0 && balls[i].x-RADIUS<WINDOW_WIDTH ) //如果小球在屏幕画布内 balls[cut++] = balls[i]; //将小球放到balls数组前面 } while(balls.length>cut)//前cut个小球在屏幕内,将后面的小球删除 balls.pop(); }
2.bug:小时、分钟、秒钟的十位数显示异常(数字不变时也会产生小球):
控制台输出:
于是将(nextSeconds/10)和(curSeconds/10)都转换为整形,问题解决。
github:暂时还不会用...