放煙火 2 ( 爆炸效果 )
這篇文章會延續「放煙火 1 ( 往上發射 )」的範例,使用 Scratch 3 裡擴充功能的畫筆、變數、函式、重複、分身、廣播訊息...等積木,模擬出放煙火的爆炸效果。
開啟範例
本篇教學為「放煙火 1 ( 往上發射 )」一文的延伸,請先開啟範例進行編輯。
積木程式原理 ( 爆炸噴發 )
從左側積木清單裡,新增一個變數 a1,作為爆炸噴發的初速使用。
點擊「煙火」角色,從左側積木清單裡,新增一個名為「爆炸」的函式,加入一個參數 num,表示爆炸噴出的煙火數量,並勾選「執行完畢再更新畫面」。
編輯「爆炸」函式內容:
- 設定 n1 為 num 的數值 ( 表示會噴出幾個煙火、需要產生幾個分身 )。
- 設定 a1 為 4~7 的噴發初速 ( 這個數值之後可以自行調整 )。
- 使用重複 num 次積木。
- 每次重複將角度旋轉「360 / num」 度,讓產生的分身繞圓周一圈。
- 每次重複建立分身。
- 重複結束後,廣播 b1 訊息,開始進行噴發的煙火減速。
放入「當收到訊息 b1」的積木,在收到 b1 訊息時,使用重複直到積木,每次重複將 a1 減少 0.01,直到 a1 等於 0 為止。
為什麼是減少 0.01 呢?因為如果使用重複積木時,沒有太多複雜的運算 ( 類似建立分身、畫筆畫圖...等 ),執行速度會很快,所以使用才 0.01 的數值 ( 程式完成後,也可以自行調整數值,測試結果 )。
放入「當分身產生」的積木,編輯分身的動作:
- 顯示分身,並將分身亮度提高 50。
- 下筆畫畫。
- 使用重複直到積木,直到 a1 小於 0 為止。
- 每次重複,將分身移動 a1 的數值 ( 會減速,越來越慢 )。
- 重複結束後,停筆。
- 將 n1 減少 1,刪除分身 ( n1 表示目前畫面上的分身數量 )。
完成後,點擊綠旗,就可以看到煙火在空中爆炸的效果。
積木程式原理 ( 旋轉往下消失 )
雖然已經做出煙火爆炸效果,但跟實際的狀況是煙火會被「地心引力影響」,會慢慢往下掉落然後消失,所以接下來要針對這個效果進行處理。
從左側積木清單,新增一個名為「旋轉往下」的函式,負責處理旋轉往下消失的效果。
接著按照下圖,修改剛剛「當分身產生」的程式:
- 加入筆跡透明度為 0 ( 因為待會會調整筆跡透明度,所以一開始先設定為 0 )
- 將 a1<0 改為 a1<1 ( 讓後續煙火消失的部分,由「旋轉往下」函式來表現 )。
- 執行旋轉往下函式。
編輯「旋轉往下」函式:
- 使用重複 50 次積木 ( 搭配透明度改變,直到看不見煙火 )。
- 每次重複將筆跡與煙火的透明度逐漸提高 2。
- 不斷移動 0.9 點 ( 接續產生分身 a1<1,所以從 0.9 開始 )。
- 判斷如果煙火面向右邊,就讓煙火往右轉 ( 不斷轉動朝下 )。
- 判斷如果煙火面向左邊,就讓煙火往左轉 ( 不斷轉動朝下 )。
完成效果
完成後,點擊綠旗,就會看見放煙火的效果。
範例解答
範例解答:放煙火 2 ( 爆炸效果 )
延伸練習
如果已經熟悉了放煙火 2 ( 爆炸效果 )的原理,還可以嘗試更多好玩的作法:
複製角色,建立新的變數,增加放煙火的數量 ( 解答 )
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~