王薇 王德貴
克隆是指生物體通過體細(xì)胞進(jìn)行的無性繁殖,以及由無性繁殖形成的基因型完全相同的后代個體。在XRmaker 中克隆可以理解為模型的復(fù)制,也稱為拷貝。
當(dāng)我們需要很多同樣的模型、執(zhí)行一樣的程序時,如果先把模型搭建好,很難分清哪個模型不說,也非常占用內(nèi)存空間,更容易宕機(jī),所以我們在需要的時候,克隆本體,然后再適時刪除,這樣既可以達(dá)到效果,也可以很好地利用內(nèi)存空間了。XRmaker 的克隆模塊在控制中。
1. 克隆自己
這是“動物_15”克隆自己,復(fù)制一個原模型,克隆模型和原模型重合。
2. 實(shí)例
重復(fù)執(zhí)行10 次,“動物_15”克隆自己,并等待1 秒。運(yùn)行后10 個模型與原模型位置重疊,看起來還是一個。我們需要繼續(xù)編程控制,才能按我們設(shè)計(jì)的思路,呈現(xiàn)出來。
1. 克隆體控制
從上面的實(shí)例看出,克隆體需要程序控制,才能達(dá)到更好的效果。比如讓克隆體在一定范圍內(nèi)的位置出現(xiàn)。比如“當(dāng)作為克隆體啟動時”,設(shè)置位置為一定范圍。讓這10 個克隆體,出現(xiàn)在不同的位置上。
2. 模型克隆時原型處理
如果事先設(shè)計(jì)好了模型位置,在克隆時,原模型會一直停在那里,影響整體效果,所以這個時候可以設(shè)置為“存在”或“不存在”。其實(shí)就是隱藏和顯示的功能。因此一般對本體“設(shè)為不存在”。“當(dāng)作為克隆體啟動時”“設(shè)為存在”。這樣在運(yùn)行程序時,才不會看到原型,而只能看到克隆體了。
程序設(shè)計(jì)時根據(jù)具體情況,來刪除克隆體。
1. 刪除本克隆體
克隆體按程序運(yùn)行以后,如果不需要了一定要刪除,否則克隆體增多時,會占用大量內(nèi)存,電腦就會宕機(jī)。復(fù)制克隆體后,會記憶克隆順序,進(jìn)行刪除。
2. 清除所有克隆體
在程序運(yùn)行過程中,如果克隆體全部完成運(yùn)行,則根據(jù)需要可以“清除所有克隆體”,釋放內(nèi)存。
3. 自動刪除
如果在程序運(yùn)行時,沒有刪除克隆體,則當(dāng)程序關(guān)閉后,克隆體也會自動刪除。
“已有克隆體總數(shù)”是一個運(yùn)算積木塊,運(yùn)算結(jié)果為浮點(diǎn)數(shù)。
五、案例——駿馬奔騰
1. 資源列表
2. 設(shè)計(jì)思路
隨機(jī)時間隨機(jī)位置出現(xiàn)馬的克隆體,在出現(xiàn)后開始奔跑。奔跑一定時間后,則刪除克隆體,可釋放內(nèi)存空間。
3. 程序設(shè)計(jì)
(1)克隆
設(shè)置馬為不存在,重復(fù)執(zhí)行馬克隆自己,設(shè)置0.01 到0.05 時間隨機(jī)。開始本馬設(shè)置不存在,是因?yàn)樗恢痹谠嘏?,就不需要看它了,只看克隆體就可以了。
(2)駿馬奔騰
當(dāng)每個克隆體出來以后,必須讓它出現(xiàn)在畫面上,為了能更直觀地觀看效果,設(shè)置為一定范圍內(nèi)的隨機(jī)位置,然后一直向前奔跑,可以看到駿馬奔騰的大場面。
(3)刪除克隆體
馬的克隆體運(yùn)行15 秒后刪除,釋放內(nèi)存空間。
4. 小結(jié)
克隆,在程序設(shè)計(jì)時經(jīng)常用到,主要是掌握了基本方法,就運(yùn)用自如了。