我對彩色小球的優(yōu)化做法:
就和判斷小球是否落地是一樣的做法,在小球超出左右邊界的時候,就將這小球從數(shù)組里移除。
具體代碼:
var b = BALLS[i];
if(b.x > WINDOW_WIDTH ||b.x < 0 ) BALLS.splice(i, 1);
不知道這中方法是否可行?會不會存在什么問題?
我對彩色小球的優(yōu)化做法:
就和判斷小球是否落地是一樣的做法,在小球超出左右邊界的時候,就將這小球從數(shù)組里移除。
具體代碼:
var b = BALLS[i];
if(b.x > WINDOW_WIDTH ||b.x < 0 ) BALLS.splice(i, 1);
不知道這中方法是否可行?會不會存在什么問題?
2014-09-14
舉報
2014-09-14
如果最外層還有一個循環(huán)的話,i變量需要小心的控制,不能使用簡單的for( i = 0 ; i < BALLS.length ; i ++ )
2014-09-15
想一想,如果運行了BALLS.splice(i, 1),結(jié)合i++ 會錯過對一個小球的檢查。
2014-09-14
具體代碼是這樣的:
//循環(huán)更新彩色小球的變化
for(var i = 0;i < BALLS.length;i++){
var b = BALLS[i];
if(b.x > WINDOW_WIDTH ||b.x < 0 ){
BALLS.splice(i, 1);
}else if(b.y >= WINDOW_HEIGHT-b.r){
b.y = WINDOW_HEIGHT-b.r;
b.vy = -b.vy*0.75;
}
b.x += b.vx;
b.y += b.vy;
b.vy += b.g;
}