Scratch克隆需要注意的問題
我們執行下面的指令碼:(小貓最初是黃色的)
我們看到螢幕會出現兩隻小貓:黃色的小貓我們叫克隆體,綠色的小貓(由最初黃色的小貓改變顏色得到)我們叫原角色。我們發現克隆體(黃色小貓)繼承了原角色的所有屬性:例如位置座標、顏色、顯示/隱藏等;克隆體的位置向前移動了100步。如果我們去掉移動100步,我們會發現克隆體會出現在原角色的下面。
我們再執行下面的指令碼:
我們會發現:按一次空格時原角色克隆出一個克隆體,螢幕上出現兩個小貓;再按一次空格時,我們發現原角色和克隆體同時各克隆出一個克隆體,螢幕上出現四隻小貓。從這個例項可以看出克隆體也繼承了原角色的所有程式碼,這樣角色的數量將以指數級2n增長。
如果我們只想按一次克隆一個角色,我們可以將指令碼改成下面的指令碼:
雖然克隆體也繼承了原角色的指令碼,但“當綠旗被點選”在指令碼的執行中只執行一次,所以克隆休的中“當綠旗被點選”永遠也不會執行。
所以克隆的最佳方法是:原角色只負責克隆。