iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
自我挑戰組

Scratch 3 從入門到精通系列 第 26

Day26 ( 高級 ) 放煙火 2 ( 爆炸效果 )

  • 分享至 

  • xImage
  •  

放煙火 2 ( 爆炸效果 )

教學原文參考:放煙火 2 ( 爆炸效果 )

這篇文章會延續「放煙火 1 ( 往上發射 )」的範例,使用 Scratch 3 裡擴充功能的畫筆、變數、函式、重複、分身、廣播訊息...等積木,模擬出放煙火的爆炸效果。

相關文章參考:畫筆變數函式廣播訊息重複分身

開啟範例

本篇教學為「放煙火 1 ( 往上發射 )」一文的延伸,請先開啟範例進行編輯。

範例連結:https://scratch.mit.edu/projects/567472030/

積木程式原理 ( 爆炸噴發 )

從左側積木清單裡,新增一個變數 a1,作為爆炸噴發的初速使用。

Scratch 3 教學 - 放煙火 2 ( 爆炸效果 )

點擊「煙火」角色,從左側積木清單裡,新增一個名為「爆炸」的函式,加入一個參數 num,表示爆炸噴出的煙火數量,並勾選「執行完畢再更新畫面」。

Scratch 3 教學 - 放煙火 2 ( 爆炸效果 )

編輯「爆炸」函式內容:

  • 設定 n1 為 num 的數值 ( 表示會噴出幾個煙火、需要產生幾個分身 )。
  • 設定 a1 為 4~7 的噴發初速 ( 這個數值之後可以自行調整 )。
  • 使用重複 num 次積木。
  • 每次重複將角度旋轉「360 / num」 度,讓產生的分身繞圓周一圈
  • 每次重複建立分身。
  • 重複結束後,廣播 b1 訊息,開始進行噴發的煙火減速

Scratch 3 教學 - 放煙火 2 ( 爆炸效果 )

放入「當收到訊息 b1」的積木,在收到 b1 訊息時,使用重複直到積木,每次重複將 a1 減少 0.01,直到 a1 等於 0 為止

為什麼是減少 0.01 呢?因為如果使用重複積木時,沒有太多複雜的運算 ( 類似建立分身、畫筆畫圖...等 ),執行速度會很快,所以使用才 0.01 的數值 ( 程式完成後,也可以自行調整數值,測試結果 )。

Scratch 3 教學 - 放煙火 2 ( 爆炸效果 )

放入「當分身產生」的積木,編輯分身的動作:

  • 顯示分身,並將分身亮度提高 50。
  • 下筆畫畫。
  • 使用重複直到積木,直到 a1 小於 0 為止。
  • 每次重複,將分身移動 a1 的數值 ( 會減速,越來越慢 )
  • 重複結束後,停筆。
  • 將 n1 減少 1,刪除分身 ( n1 表示目前畫面上的分身數量 )

Scratch 3 教學 - 放煙火 2 ( 爆炸效果 )

完成後,點擊綠旗,就可以看到煙火在空中爆炸的效果。

Scratch 3 教學 - 放煙火 2 ( 爆炸效果 )

積木程式原理 ( 旋轉往下消失 )

雖然已經做出煙火爆炸效果,但跟實際的狀況是煙火會被「地心引力影響」,會慢慢往下掉落然後消失,所以接下來要針對這個效果進行處理。

從左側積木清單,新增一個名為「旋轉往下」的函式,負責處理旋轉往下消失的效果。

Scratch 3 教學 - 放煙火 2 ( 爆炸效果 )

接著按照下圖,修改剛剛「當分身產生」的程式:

  • 加入筆跡透明度為 0 ( 因為待會會調整筆跡透明度,所以一開始先設定為 0 )
  • 將 a1<0 改為 a1<1 ( 讓後續煙火消失的部分,由「旋轉往下」函式來表現 )。
  • 執行旋轉往下函式。

Scratch 3 教學 - 放煙火 2 ( 爆炸效果 )

編輯「旋轉往下」函式:

  • 使用重複 50 次積木 ( 搭配透明度改變,直到看不見煙火 )。
  • 每次重複將筆跡與煙火的透明度逐漸提高 2。
  • 不斷移動 0.9 點 ( 接續產生分身 a1<1,所以從 0.9 開始 )。
  • 判斷如果煙火面向右邊,就讓煙火往右轉 ( 不斷轉動朝下 )。
  • 判斷如果煙火面向左邊,就讓煙火往左轉 ( 不斷轉動朝下 )。

Scratch 3 教學 - 放煙火 2 ( 爆炸效果 )

完成效果

完成後,點擊綠旗,就會看見放煙火的效果。

Scratch 3 教學 - 放煙火 2 ( 爆炸效果 )

範例解答

範例解答:放煙火 2 ( 爆炸效果 )

延伸練習

如果已經熟悉了放煙火 2 ( 爆炸效果 )的原理,還可以嘗試更多好玩的作法:

  • 複製角色,建立新的變數,增加放煙火的數量 ( 解答 )

    Scratch 3 教學 - 放煙火 2 ( 爆炸效果 )

關於我

大家好,我是 OXXO,是個即將邁入中年的斜槓青年,如果對我有點興趣(笑,可以與我聯繫,一起來做點有玩又有創意的東西吧!


上一篇
Day25 ( 高級 ) 放煙火 1 ( 往上發射 )
下一篇
Day27 ( 高級 ) 小畫家 ( 舞台上畫圖 )
系列文
Scratch 3 從入門到精通46
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言