亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

直接用splice()去掉出界的小球

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);

? ? ? ?}

? ?}

}


正在回答

3 回答

我也是用這個,測試下來是可以的.保持在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);
}


0 回復 有任何疑惑可以回復我~

我也嘗試用了這個方法,但是時間長了,還是不行,還是會劇增,不知道是什么問題,不知道你解決了嗎?

0 回復 有任何疑惑可以回復我~

優化的方法是么?!贊!在哪里可以查到array函數文檔???

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

直接用splice()去掉出界的小球

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號