最赞回答 / RyanGun
updateBalls()函数里面补充下面这段:var cnt = 0; for(var i=0; i<balls.length; i++){ if(balls[i].x+RADIUS>0 && balls[i].x-RADIUS<WINDOW_WIDTH){ balls[cnt++] = balls[i]; } } while(balls.length>Math.min(300,cnt)){ balls.pop(); }
2014-09-10
已采纳回答 / l1uyub0b0b0
我不知道我又没有正确理解你的问题。因为每个小球的速度不同,所以出边界的时间不一样,不一定早产生早出局,这也是使用这样一个方法的原因。如果将小球的速度范围随机化得更大的化,这个现象会更明显。
2014-09-05
最赞回答 / l1uyub0b0b0
根据你的示意图,第一次运行balls[cnt++]=balls[j]的时候,就是:balls[0] = balls[20],之后cnt++,cnt为1;第二次的时候为 balls[1] = balls[21],,之后cnt++,cnt为2;第三次的时候为 balls[2] = balls[22],,之后cnt++,cnt为3;...以此类推,最后一次运行的时候,是:balls[179] = balls[199],,之后cnt++,cnt为180;之后j=200 循环结束。此时,balls[0]-balls...
2014-09-04