function updateBalls(){
for( var i = 0 ; i < balls.length ; i ++ ){
balls[i].x += balls[i].vx;
balls[i].y += balls[i].vy;
balls[i].vy += balls[i].g;
if( balls[i].y >= WINDOW_HEIGHT-RADIUS ){
balls[i].y = WINDOW_HEIGHT-RADIUS;
balls[i].vy = - balls[i].vy*0.75;
}
if(balls[i].x<-RADIUS || balls[i].x>WINDOW_WIDTH+RADIUS){
balls.splice(i,1);
}
}
}
我也是用这个,测试下来是可以的.保持在310个左右.不过我的跟你的不太一样
function updateBalls(){ //遍历所有的小球,改变小球的状态 for(var i = 0 ; i < balls.length ; i++){ balls[i].x += balls[i].vx; balls[i].y += balls[i].vy; balls[i].vy += balls[i].g; //碰撞的检测 if( balls[i].y >= CANVAS_HEIGHT- RADIUS){ balls[i].y = CANVAS_HEIGHT- RADIUS; balls[i].vy = -balls[i].vy*0.75; } if(balls[i].x+(RADIUS*2) < 0 || balls[i].x+(RADIUS*2)>CANVAS_WIDTH){ balls.splice(i,1); } } console.log(balls.length); }
我也尝试用了这个方法,但是时间长了,还是不行,还是会剧增,不知道是什么问题,不知道你解决了吗?
优化的方法是么?!赞!在哪里可以查到array函数文档啊?