關(guān)于刪除小球的pop()方法還有不理解的地方
pop()方法一次只能刪除最后一個(gè)數(shù)組元素,而刷新率是每50ms一次,相當(dāng)于一秒是刷新20次,也就是說一秒最多只能刪除20個(gè)小球,但是每一秒產(chǎn)生新的小球數(shù)量卻大于20,為什么實(shí)際上沒有積壓更多的小球呢,求解!??!
pop()方法一次只能刪除最后一個(gè)數(shù)組元素,而刷新率是每50ms一次,相當(dāng)于一秒是刷新20次,也就是說一秒最多只能刪除20個(gè)小球,但是每一秒產(chǎn)生新的小球數(shù)量卻大于20,為什么實(shí)際上沒有積壓更多的小球呢,求解!??!
舉報(bào)
2016-04-19
刪除的是以整個(gè)數(shù)組為目標(biāo),當(dāng)滿足超出屏幕的小球就會(huì)被刪除! balls.push(aBall);
//循環(huán)小球
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 = {
//坐標(biāo)位置x
x:x+j*2*(cR+1)+(cR+1),
//坐標(biāo)位置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);
}
}
}
//在屏幕中小球的數(shù)量
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];
}
}
//超出屏幕小球的數(shù)量
while(balls.length > Math.min(300,cnt)){
balls.pop();
}
2016-06-30
其實(shí)我覺得直接改變balls的長度會(huì)更好!