關于刪除小球的pop()方法還有不理解的地方
pop()方法一次只能刪除最后一個數組元素,而刷新率是每50ms一次,相當于一秒是刷新20次,也就是說一秒最多只能刪除20個小球,但是每一秒產生新的小球數量卻大于20,為什么實際上沒有積壓更多的小球呢,求解?。?!
pop()方法一次只能刪除最后一個數組元素,而刷新率是每50ms一次,相當于一秒是刷新20次,也就是說一秒最多只能刪除20個小球,但是每一秒產生新的小球數量卻大于20,為什么實際上沒有積壓更多的小球呢,求解?。?!
2016-04-19
舉報
2016-04-19
刪除的是以整個數組為目標,當滿足超出屏幕的小球就會被刪除! balls.push(aBall);
//循環小球
for(var i = 0;i < digit[num].length;i++){
for(var j = 0;j <digit[num][i].length;j++){
if(digit[num][i][j] == 1){
var aBall = {
//坐標位置x
x:x+j*2*(cR+1)+(cR+1),
//坐標位置y
y:y+i*2*(cR+1)+(cR+1),
//加速度
g:1.5 + Math.random(),
//x方向速度
vx:Math.pow(-1,Math.ceil(Math.random()*1000)) * 4,
vy:-5,
color:colors[Math.floor(Math.random()*colors.length)]
}
balls.push(aBall);
}
}
}
//在屏幕中小球的數量
var cnt = 0;
for(var i = 0; i < balls.length;i++){
if(balls[i].x + cR > 0 && balls[i].x - cR < window_width){
balls[cnt++] = balls[i];
}
}
//超出屏幕小球的數量
while(balls.length > Math.min(300,cnt)){
balls.pop();
}
2016-06-30
其實我覺得直接改變balls的長度會更好!