Scratch教程:誰是真悟空


在西游記中,有一集是“真假悟空”,六耳獼猴變成了悟空的模樣與真悟空真假難辨,打的不可開交。

在Scartch中,我們常常會使用一個本體來生成多個克隆體,這在開發過程中有重要的意義。但在實際操作中,每個克隆體看起來都是一樣的,如何在程序中區分克隆體呢?

我們這里需要區分兩個問題:

 

第一個是如何區分本體和克隆體.第二個是如何標識及區分多個不同的克隆體。

今天,我們就把克隆體的相關知識及區分的問題分析一下。

克隆體與本體的關系是什么呢? 

      在本體生成克隆體時,克隆體會具有和本體相同的位置、方向、大小、特效、造型、聲音、局部變量和程序。由於它們具有相同的程序,所以在響應消息時,本體和克隆體可能會同時接受消息,產生錯誤的結果。因此必須區分本體及克隆體。

下面,我們從克隆體的生命周期上分析區分的方法,克隆體的生命周期包括如下幾個過程。

誰是真悟空                      

1

克隆體的創建:是使用“克隆”積木生成的,可以生成一個角色的克隆體,或生成另外角色的克隆體。

2

在克隆體生成時,就會激發“當作為克隆體啟動時”的事件,可以在此進行一些克隆體的初始化工作。

3

刪除克隆體,克隆體最后可以刪除自己。只有刪除后,克隆體的所有資源才釋放。

 

而本體的生命周期呢?

本體是一直存在的,只要在項目中加入了這個本體角色,這個角色就存在,直到將這個角色從項目中刪除才會釋放所有的資源。

       很重要的一個區別就是,只有本體可以接收綠旗事件。由於在點擊綠旗時,系統會先刪除所有的克隆體,這時舞台上只有本體,也就只有本體可接受綠旗事件。

從上面的分析可以知道,本體和克隆體發生的事件是不同的。

只有本體可以接收綠旗事件,只有克隆體可以接收“當作為克隆體啟動時”事件。

這樣就可以區分這兩者了。

 

誰是真悟空

典型的方式如下,可以設置一個局部變量“是克隆體”,在綠旗時設置為0,表示不是克隆體,在“當作為克隆體啟動時”時,再把這個變量設置為1,表示是克隆體。

程序如下:

誰是真悟空

這樣這個變量的值就表示了是否是克隆體。

下面是區分克隆體的問題,在生成多個克隆體時,如何區分不同的克隆體呢?

可以使用這樣的方式,建立一個局部變量ID,使每個克隆體的數值不同,就可以用來區分多個克隆體了。那么如何設置這個值呢?可以在本體中改變值后再克隆,因為克隆體繼承了本體變量的值,所以每個可以有不同的值。

程序如下:

誰是真悟空

可以看到,在生成10個克隆體的過程中,每個克隆體都有了不同的ID。在點擊綠旗及按下空格后,就得到了下面的效果。

 

誰是真悟空

可以看到每個克隆體得到了從1到10的不同ID,而說11的就是本體。

 

結論

      1   克隆體是Scratch中重要的功能,在程序中區分克隆體是很重要的技術。

2   區分包括兩個方面,一個是區分本體和克隆體,另一個是區分不同的克隆體。

3   區分本體和克隆體的方式是利於兩者的不同事件。

4   區分不同克隆體的方式是使用一個標識的變量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM