
大家好,我是蘇小糖,上一篇我們研究克隆體繼承問題的時(shí)候發(fā)現(xiàn)了當(dāng)克隆體到達(dá)一定數(shù)目之后,便不再產(chǎn)生新的克隆體,也留下了兩個(gè)問題,1.克隆體總數(shù)是多少?2.克隆體總數(shù)指的是單個(gè)角色的克隆體總數(shù),還是指的全部角色的克隆體總數(shù)?先說結(jié)論,scratch限定全部克隆體的總和最多為300個(gè)。
本次,我們通過每克隆一次,變量加一的方式來計(jì)算一下克隆體總數(shù)。
1...只克隆小貓
我們用一個(gè)變量來計(jì)算小貓克隆體的數(shù)量,每次產(chǎn)生新的克隆體都會(huì)加1。這樣最后我們得到克隆體數(shù)量是317。我通過試驗(yàn)發(fā)現(xiàn),這個(gè)最大數(shù)量不太確定,有時(shí)候是304,有時(shí)候310,有時(shí)候300。我們姑且取個(gè)整數(shù),單個(gè)角色的時(shí)候,克隆體最大數(shù)量是300,同時(shí)存在的克隆體如果超過這個(gè)數(shù)量,將不再生成新克隆體。

以上是單個(gè)角色進(jìn)行克隆,那么如果是兩個(gè)角色同時(shí)克隆呢?
2...兩個(gè)角色同時(shí)克隆? ?
好的,我們?cè)黾右粋€(gè)角色,小狗。分別用兩個(gè)變量,來記錄每個(gè)角色的克隆體數(shù)量。最后得到,小貓克隆體159個(gè),小狗克隆體160個(gè),總計(jì)319個(gè)。我們發(fā)現(xiàn)scratch對(duì)克隆體的總數(shù)進(jìn)行了限定,而不是按角色進(jìn)行限定。

3...三個(gè)或更多個(gè)角色同時(shí)克隆
在已經(jīng)得出結(jié)論的情況下,我們?cè)僭囼?yàn)一下,三個(gè)角色同時(shí)克隆的情況,同樣的操作,每添加一個(gè)角色,就新建一個(gè)變量,來記錄該角色的克隆體數(shù)量。我們發(fā)現(xiàn),三個(gè)角色的時(shí)候,小貓克隆體106個(gè),小狗克隆體107個(gè),小鴨克隆體107個(gè),三個(gè)角色的克隆體總數(shù)320個(gè)。

然后我們?cè)僭囈幌峦瑫r(shí)克隆5個(gè)角色的情況。經(jīng)過試驗(yàn)小貓克隆體64個(gè),小狗克隆體64個(gè),小鴨克隆體64個(gè),小象克隆體64個(gè),小雞克隆體65個(gè),五個(gè)角色的克隆體一共321個(gè)。

至此,我們完成了探究scratch3.0克隆體總數(shù)問題的任務(wù),克隆體總和為300多個(gè),我們?yōu)榱朔奖?,下個(gè)結(jié)論就是,scratch限定全部克隆體的總和最多為300個(gè)。至于為什么每次克隆體最大數(shù)量不同,這個(gè)還沒有搞明白。不過300個(gè),已經(jīng)夠用了。
使用高配電腦的同學(xué),在短時(shí)間生成多個(gè)克隆體的時(shí)候,會(huì)有一種爆屏的沖擊感,而電腦配置低一些的同學(xué)會(huì)發(fā)現(xiàn)電腦卡機(jī)了。scratch應(yīng)該是為了防止程序過度的耗費(fèi)內(nèi)存,設(shè)置了這么一個(gè)保護(hù)機(jī)制。所以我們?cè)谑褂每寺」δ艿臅r(shí)候,一定及時(shí)的刪除克隆體,好讓程序能保證運(yùn)行流暢。
好滴,我們留個(gè)問題,仔細(xì)觀察一下,克隆積木的下面是可以繼續(xù)放其他積木的,那么問題就來了??寺》e木下面的代碼對(duì)本體有效還是對(duì)克隆體有效呢?

我們?cè)谙麓?,?duì)這個(gè)小問題,進(jìn)行一下探究。
以上代碼很簡(jiǎn)單,可以自己嘗試體會(huì)一下,如果直接需要代碼文件,可以聯(lián)系我。希望,以上分享對(duì)各位有所幫助,轉(zhuǎn)發(fā)請(qǐng)注明出處。
scratch3.0小問題系列
scratch3.0小問題系列(一)字體調(diào)節(jié) - 簡(jiǎn)書
scratch3.0小問題系列(二)克隆體與本體的繼承關(guān)系 - 簡(jiǎn)書
我是蘇小糖,平時(shí)玩玩scratch、microbit和arduino。后續(xù)會(huì)推出更多相關(guān)文章分享給大家。喜歡的話就關(guān)注我吧。