拋物線發射炮彈
這篇文章會介紹在 Scratch 裡繪製大砲和砲彈,搭配重複直到、面朝滑鼠、偵測滑鼠按下、變數改變、座標改變...等積木,實作發射炮彈的效果,並模擬發射炮彈的拋物線軌跡。
角色設定
在角色編輯區,刪除貓咪角色,使用繪畫,繪製大砲和砲彈的角色 ( 參考:造型與繪圖 )。
「大砲」角色由一個長方形和一個圓形組成,需要注意的是「圓形的圓心要對齊畫布的中心點」( 中心點是個灰色瞄準準心 ),如此一來旋轉大砲的時候,才會是以圓形的中心點轉動。
「砲彈」角色是一個紅色圓形,圓形的位置需要「放在大砲的砲口,不能放在畫布的中心」,如果放在畫布的中心,執行後會發生砲彈和砲管位置不同的狀況 ( 砲彈從不是砲管的地方發射 )。
下圖表現了大砲和砲彈的相對位置:
積木程式原理
先編輯「大砲」角色的程式:
- 點擊綠旗時,將大砲定位到左下方 ( -200,-140 ),並移到最上層。
- 使用重複無限次積木,讓大砲面朝滑鼠的方向 ( 滑鼠移到哪,大砲就轉到哪 )。
接著編輯「砲彈」角色的程式:
- 當綠旗被點擊時,將砲彈隱藏,定位到和大砲一樣的位置 ( -200,-140 )。
- 設定「重力加速度」變數為 -2。
- 使用重複無限次積木,讓砲彈面朝滑鼠的方向 ( 滑鼠移到哪,砲彈就轉到哪 )。
- 點擊滑鼠時,每隔 0.01 秒產生一個砲彈的分身。
最後編輯「發射砲彈」的程式:
- 當分身產生後,設定 x 與 y 變數,變數數值為與滑鼠之間的距離,距離越大,發射速度越快。
- 使用「重複直到」積木,判斷砲彈 y 座標落地後,就刪除分身。
- 每次重複改變 y 變數數值,改變的幅度為「重力加速度」的數值。
完成效果
完成後,點擊綠旗,在舞台上按壓滑鼠鍵,就會看見砲彈以拋物線的方式發射。
範例解答
範例解答:拋物線發射炮彈
延伸練習
如果已經熟悉了拋物線發射炮彈的原理,還可以嘗試更多好玩的作法:
- 加入發射砲彈的音效。
- 使用拋物線發射砲彈的原理,發想相關的遊戲應用。
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~