第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

關(guān)于刪除小球的pop()方法還有不理解的地方

pop()方法一次只能刪除最后一個(gè)數(shù)組元素,而刷新率是每50ms一次,相當(dāng)于一秒是刷新20次,也就是說一秒最多只能刪除20個(gè)小球,但是每一秒產(chǎn)生新的小球數(shù)量卻大于20,為什么實(shí)際上沒有積壓更多的小球呢,求解!??!

正在回答

2 回答

刪除的是以整個(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();

}


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

暴走大熊 提問者

你雖然沒有正面回答我的問題,但我通過你的回答突然想明白了,原來while語句的每一次刪除動(dòng)作是跟著每一次的for循環(huán)遍歷走的,就是每往數(shù)組中加入一個(gè)小球,while語句就會(huì)檢測并執(zhí)行一次。 我之前的理解是while是跟著50ms的刷新走的,理解偏差了。 謝謝耐你的心回答!
2016-04-19 回復(fù) 有任何疑惑可以回復(fù)我~
#2

000339043 回復(fù) 暴走大熊 提問者

可是他的while沒包含在for語句里面啊
2016-05-11 回復(fù) 有任何疑惑可以回復(fù)我~
#3

dl_嘛哩嘛哩哄 回復(fù) 暴走大熊 提問者

同問,為什么while是跟著for走,while沒有包括在for里面?。???
2016-05-14 回復(fù) 有任何疑惑可以回復(fù)我~
#4

暴走大熊 提問者 回復(fù) dl_嘛哩嘛哩哄

每次的刷新,首先帶來for語句的遍歷循環(huán)每一個(gè)小球,把所有沒有超出屏幕范圍的球放置小球數(shù)組的前面(前cnt個(gè)),直到把所有球都遍歷完畢,然后再執(zhí)行while,while是一直循環(huán)往復(fù)的檢測這個(gè)數(shù)組,只要檢測到一次小球數(shù)量大于cnt(或300),就刪除數(shù)組最后一個(gè),直到小球數(shù)量不大于cnt(或300)為止,才會(huì)結(jié)束while循環(huán)。因?yàn)檫@兩個(gè)循環(huán)都是在一刷新中搞定的,所以與50ms沒有什么關(guān)系。
2016-05-14 回復(fù) 有任何疑惑可以回復(fù)我~
#5

暴走大熊 提問者 回復(fù) 000339043

同上回復(fù)
2016-05-14 回復(fù) 有任何疑惑可以回復(fù)我~
#6

暴走大熊 提問者 回復(fù) dl_嘛哩嘛哩哄

所以并不是for跟著while走,他們是相互獨(dú)立的,之前解釋錯(cuò)誤,見諒
2016-05-14 回復(fù) 有任何疑惑可以回復(fù)我~
#7

飛過那座山 回復(fù) 暴走大熊 提問者

每次不止往數(shù)組里加入一個(gè)小球。而且電腦的運(yùn)行速度是很快的,while循環(huán)能pop數(shù)組里出界的所有小球。
2016-06-30 回復(fù) 有任何疑惑可以回復(fù)我~
#8

西風(fēng)瀟瀟 回復(fù) 暴走大熊 提問者

還是一樣啊。pop()方法不是刪除最后的小球嗎,也就是最新的小球,
2016-07-11 回復(fù) 有任何疑惑可以回復(fù)我~
#9

魚字頭上一把刀 回復(fù) 暴走大熊 提問者

while是自己走的吧~也可以改寫成for循環(huán)呀~拿到cnt之后,他就只和balls.length有關(guān)。 刪除不是因?yàn)榧恿藥讉€(gè)球,而是因?yàn)榍虻奈恢冒l(fā)生了改變吧
2016-10-16 回復(fù) 有任何疑惑可以回復(fù)我~
查看6條回復(fù)

其實(shí)我覺得直接改變balls的長度會(huì)更好!

balls.length?=?Math.min(300,?cnt);


0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

關(guān)于刪除小球的pop()方法還有不理解的地方

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)