Scratch 3 學習手冊【中級篇】——04 魔法棒
【疑惑篇】
點選
綠旗按鈕
,魔法棒會不斷噴出小星星,使用滑鼠可以移動魔法棒。
影片演示
親自操作
【線索篇】
案例分析
它們發生的場景是什麼?
每個場景中有哪些角色?
每個場景中的每個角色在做什麼?
點選綠旗按鈕,迴圈播放背景音樂。
移動滑鼠,魔法棒自動跟隨滑鼠移動。
從魔法棒的五角星中間不斷噴出小星星。
積木提示
當綠旗被點選
移動(10)步
移到x:(0) y:(0)
移到([隨機位置])
面向(90)方向
將y座標增加(10)
換成([造型1])造型
將大小設為(100)
將[顏色]特效增加(25)
將[顏色]特效設定為(0)
播放聲音([喵])等待播完
重複執行(10)次
重複執行
當作為克隆體啟動時
克隆[自己]
刪除此克隆體
滑鼠的x座標
滑鼠的y座標
加法
減法
在(1)和(10)之間取隨機數
注意事項
案例中有幾個角色?
【解決篇】
一根魔法棒可以跟隨滑鼠移動,從魔法棒中還能不斷噴出小星星,看上去似乎很容易就能實現。
透過這個案例,我將帶你學習中級篇中另外一個重要的內容,克隆體。
第一步,先把用到的背景Hearts新增進來。
第二步,新增角色,這也是本案例的難點。請你想一想在這個案例中總共有多少角色?
或許你會說有一根魔法棒和很多的小星星,在這裡為了簡化製作過程,我們先考慮只有一根魔法棒和一個小星星的情況。
在Scratch中並沒有魔法棒,你可以新增兩個星星角色,將其中一個下面畫出一個棒子的形狀。
第三步,使用指令積木實現程式。
1. 點選綠旗按鈕,迴圈播放背景音樂。
新增背景音樂相信你已經很熟悉了,先上傳自己喜歡的音樂,然後使用
重複執行
積木和
播放聲音([喵])等待播完
積木讓它迴圈播放。
2. 移動滑鼠,魔法棒自動跟隨滑鼠移動。
又是一個熟悉的功能,還記不記得
小狗追星星
中我們是如何讓星星跟隨滑鼠移動的?
你可以像這樣實現。
還可以像這樣實現。
點選綠旗按鈕進行測試,現在魔法棒已經可以跟隨滑鼠移動,不過有個小問題。想象一下我們的滑鼠就是拿著魔法棒的手,現在我們的手是拿著魔法棒頂部的星星在動,能不能變成讓下面的棒子部分跟隨滑鼠移動?
在這裡有兩種調整方法。
第一種方法修改星星的座標點。
還記不記得角色在舞臺上的位置是由造型中的座標點所決定。星星角色預設的座標點在星星的中間,所以當你將它移到滑鼠指標位置時,是星星的中間與滑鼠重合。現在只需要將座標點的位置往下移,讓座標點與棒子的部分重合就可以了。
第二種方法,調整星星移動後的位置。
現在當你把星星移動到滑鼠指標位置時,滑鼠正好與星星的中間重合。如何想要棒子部分與星星重合,是不是隻需要將角色再往上移動就可以了。如何將角色往上移動?每次將它移到滑鼠指標位置後,再增加它的y座標值。
在這裡我推薦你使用第二種方法,原因在下一步中就會知道。
3. 從魔法棒的五角星中間不斷噴出小星星。
這一步中為了簡化步驟,我們先只添加了一個小星星的角色。仔細觀察一下動畫中的小星星做了哪些事情?
首先,角色預設的大小太大了,需要使用
將大小設為(100)
積木將它縮小。
接著,小星星會從魔法棒星星的中間飛出去,所以你需要把先它移動到魔法棒星星的位置。
如何移動呢?是不是和上一步一樣。當你在上一步中使用第二種方法調整魔法棒的位置後,魔法棒的座標點還是保持在星星的中間,這時只要使用使用
移到([隨機位置])
積木,就可以讓小星星移動到魔法棒的星星中間。
如果你在上一步中使用的是第一種方法,那此時你就要重新計算魔法棒星星中間的座標值,然後將小星星移動過去。
接著,從魔法棒中噴出的小星星有各種顏色,你可能會想到為角色增加不同顏色的造型進行選擇。除了這種方法之外,還有一種簡單的方法,可以利用
將[顏色]特效設定為(0)
積木修改它的顏色。具體修改成多少呢?你可以使用
在(1)和(10)之間取隨機數
積木讓它隨意選擇一個顏色值。顏色特效的取值範圍是0~200。
接下來,要讓小星星噴出去了。如何噴的?實際上就是讓小星星向著一個隨機方向移動一段距離。
隨機方向使用
面向(90)方向
積木和
在(1)和(10)之間取隨機數
積木確定。
移動一段距離是不是類似於
消滅蟲子1
中蟲子爬行一段距離,使用
重複執行(10)次
積木和
移動(10)步
積木實現。
注意觀察,小星星在移動的過程中,會逐漸消失,這是如何實現的?其實很簡單,只需要在它移動的過程中,使用
將[顏色]特效增加(25)
積木增加它的
虛像
或者
亮度
,小星星看上去就像慢慢消失。
點選綠旗按鈕進行測試,現在小星星已經可以正常的從魔法棒頂部噴出去,但是它只會噴一次。
你可以給它增加一個
重複執行
積木,這樣就能一直不停的噴出去。別忘了,因為每次噴出去時它的特效都會被修改,所以在迴圈最開始的地方,要將它已存在的圖形特效清除掉。
既然已經完成了一個小星星的角色,其他的小星星是不是和它的操作一模一樣,你可以在角色列表中使用“複製”功能,複製出很多一樣的小星星角色。具體需要多少呢?那就由你自己來決定。
可能你會想,這樣做好麻煩呀,萬一你要對小星星做一點修改,例如現在所有的小星星都是同時向外噴出,如果你想讓他們能夠交錯噴出,就不得不把全部小星星角色都增加一個隨機的等待時間。想一想這個過程就會覺得頭大。有沒有什麼簡單的方法來解決這個問題?
要解決這個問題就要用到Scratch中的一個重要功能,
克隆體
。
你已經知道,在Scratch中你可以新增不同的角色在舞臺中,然後利用指令積木來控制它們完成不同的任務。
在控制分類中有一個積木叫做
克隆[自己]
,它有什麼作用呢?當你需要使用許多相同的角色時,使用
克隆[自己]
積木就可以在舞臺中創造一個所選角色的克隆體。
例如,原本在舞臺上有一種小貓。
當你點選一次
克隆[自己]
積木,在原來小貓的位置就會多出一個一模一樣的角色,它叫做小貓的克隆體。
你同樣可以使用指令積木讓它移動,修改它的大小、顏色等等。具體如何做呢?每當使用
克隆[自己]
積木創造一個新的克隆體時,
當作為克隆體啟動時
事件積木就會被啟動。此時,你可以將其他積木塊拼接在它後面,操作這個新的克隆體。
回到案例中,現在我們有許多一樣的小星星,它們做的操作也相同,因此我們可以將它們作為克隆體來操作。
點選綠旗按鈕後,我們不用在控制小星星的原始角色,只需要讓它重複不停的克隆自己,創造出自己的克隆體。
接著,當克隆體啟動時,我們只需要讓它們完成之前由原始角色完成的操作即可。每個克隆體出來後,都會調整自己的大小,改變自己的顏色,然後從魔法棒的位置隨機向外噴出。
在這裡需要特別注意一件事,Scratch中的克隆體數量是有限制的,一個作品最多隻能創造300個克隆體。所以每個克隆體的任務完成以後,一定要記得使用
刪除此克隆體
積木將它從舞臺中刪除。
你可以自己嘗試一下,不新增
刪除此克隆體
積木會出現什麼情況?當舞臺中存在300個克隆體後,就不會再有新的克隆體出現。
點選綠旗按鈕進行測試,現在只使用一個小星星角色的情況下,已經能讓魔法棒不停地噴出許多小星星。
仔細觀察舞臺,你可能會發現一個落單的小星星,它是哪來的?沒錯,它就是我們的原始角色。
通常情況下,當我們使用克隆體時,就不在使用原始角色,所以可以點選綠旗後將它隱藏起來。可是如此一來,當它被克隆時,新生成的克隆體也會和它一樣是隱藏狀態。因此,我們需要在
當作為克隆體啟動時
積木後面重新將克隆體顯示出來。
目前為止,似乎我們已經完成了魔法棒的製作。現在我想在幫你把難度升級,既然我們的魔法棒本身也是利用星星角色修改的,那你能不能就只使用一個角色來完成這個案例呢?
在你繼續往下看之前,暫停一下,自己嘗試著做一做。
其實要使用一個角色來實現也不難。現在只有一個角色,它既要作為魔法棒,又要作為小星星,所以需要讓它擁有兩種不同的造型。為魔法棒角色新增星星造型。
接下來,魔法棒除了需要跟隨滑鼠移動之外,還需要像小星星角色一樣不停的克隆自己。
被克隆出來的魔法棒需求做什麼事呢?是不是隻需要將小星星角色
當作為克隆體啟動時
的指令串複製給它就行。
在這裡需要注意的是,魔法棒被克隆出來以後的造型還是魔法棒,所以首先需要將它的造型換成小星星。而克隆體被克隆出來的位置和原始角色本身就相同,所以就不再需要
移到([隨機位置])
積木。
經過簡單的改動之後,只使用了一個角色,你就完成了魔法棒的功能。
克隆體是Scratch中非常重要也比較難的功能之一,我在今後的案例中會帶你經常使用它,以便幫你儘快掌握它的用法。
想看更多學習案例,歡迎點選檢視
《Scratch 3學習手冊》
。
想要獲取所有案例原始碼和素材,以及獲得我對你在學習中所遇問題的一對一解答,歡迎加入
石頭解憂雜貨店
。