這節課我們學習克隆,克隆的原意是指無性繁殖或營養繁殖的方式培育植物,后來應用到動物繁殖領域,世界上第一只被克隆的動物是克隆羊 — 多莉,

在我們的編程世界里,我們可以通過克隆的方式重用代碼,重用舞臺的各種元素,甚至直接重用角色,今天我們就用克隆的方式來實現一款小朋友們非常熟悉的游戲《植物大戰僵尸》里的一個場景 —— 豌豆射手吐出豌豆的效果,后續我們會系列的把《植物大戰僵尸》這個游戲實現一下,是不是很期待啊?
#### **本節課知識點:使用克隆代碼塊完成豌豆射手吐出豌豆效果**
首先,我們通過之前學過的造型切換的知識點來完成豌豆射手搖晃起來的效果,豌豆射手的代碼就完了,我們主要的工作是要完成豌豆發射出來的效果,
小明同學:這個簡單啊,直接讓豌豆的橫坐標增加就可以了,這樣實現不就行了嗎?(拖入豌豆循環代碼)

阿達老師:非常棒,可是怎么實現豌豆重復發射的效果呢?
小明同學:可以在角色區再復制一個豌豆子彈,這樣我們就有兩個子彈了,

阿達老師:沒錯,但是如果要發射成百上千個子彈,那豈不是要復制無數年角色了嗎?這樣我們的程序會非常不好維護,運行起來也會非常的慢,我們怎么解決這個問題呢?
小明同學:。。。。。。。 好像是有點挫
這里我們可以用克隆的方式實現,我們可以不斷的克隆豌豆子彈,來實現發射的效果,首先,從控制模塊組里拖動“克隆自已”代碼塊出來,然后加上一個無限循環的代碼,

我們雙擊一下這段代碼看一下效果吧,我們拖動一下看看,咦,拖走一個,還有一個,再拖,仍然還有,在原來的坐標位置上我們克隆出來了好多個克隆體,

有了克隆體我們就要對克隆體進行編碼,所以,需要把“當作為克隆體啟動時”代碼塊拖動到腳本區,這里要說明一下,我們在這里給克隆體的編碼適用于所有克隆體哦,第一步,需要讓克隆體顯示出來,我們再從控制模塊組里拖動條件循環語句出來,在重復執行的條件判斷里加入“碰到僵尸”的條件,在重復執行的內容里面加入將x坐標增代碼塊,把x坐標增加的步長改為-1,試一下,

大家看所有的豌豆子彈碰到僵尸后就停在了那里,這是為什么呢?

因為我們循環的條件是碰到僵尸后就滿足了退出循環的條件,但是退出循環之后我們并沒有做任何其它操作,在這里豌豆子彈打到僵尸身上后,它就完成任何了,克隆體的生命周期就結束了,這里我們要對克隆體進行清理,直接把克隆全刪除就行了,
從控制模塊組里把“刪除克隆體”代碼拖出來,放到循環語句的下方,好,大功告成,今天我們就講到這里吧,我們下節課見
- scratch課標
- 第一課
- scratch編程環境
- scratch介紹
- scratch編程環境各區域詳解
- 課堂實戰
- 第二課
- 知識點:讓角色動起來
- 課堂實戰一:小松鼠跳過河-設置角色名稱和大小
- 課堂實戰二:小松鼠跳過河-模擬重力加速度效果
- 第三課
- 知識點:程序的入口和出口
- 知識點:程序的三種執行結構
- 課堂實戰
- 第四課
- 知識點:角色造型概念
- 課堂實戰:唐詩繪本
- 第五課
- 知識點:角色特效展示&隨機數使用
- 課堂實戰
- 第六課
- 知識點:鍵盤方向鍵使用
- 第七課
- 知識點:偵測模塊之碰到顏色
- 課堂實戰:迷宮
- 條八課
- 知識點:克隆實現
- 課堂實戰:豌豆射手
- 第九課
- 知識點:變量應用
- 第十課
- 知識點:程序進階之自定義模塊
- 第十一課
- 知識點:精美的幾何世界之畫筆使用
- 課堂實戰進階:九九乘法表實現
- 第十二課
- 項目實戰:尋找蛋糕(一)
- 課堂實戰
- 咨訊
- 韓國將"編程"納入小學必修課程
- 家長認知
- STEAM教育理念應用的鑰匙-scratch少兒編程語言
- 習大大主持開幕的人工智能大會上講了啥
- 9.19 習大大主持開幕的人工智能大會講了啥