角色控制 ( 地上移動 )
這篇文章會介紹,如何在 Scratch 裡使用函式、變數、碰到其他角色、重複無限次、繪製角色、按下鍵盤、邏輯...等積木,實作角色可以自由落地站在地板上,並由鍵盤控制角色在地板上移動。
角色設定
在角色編輯區,刪除貓咪角色,加入一個小雞的新角色 ( 參考:Scratch 角色設定 )。
另外一個角色,使用繪畫,繪製地板的圖案,將名稱命名為地板 ( 參考:造型與繪圖 )。
完成後,在角色區域應該就能看到小雞角色和地板角色。
積木程式原理
點選小雞角色,一開始先將小雞定位,並把角色移到最上層 ( 避免被地面遮住 ),增加 x 速度和 y 速度兩個變數,分別表示水平移動和垂直移動的速度,接著使用重複無限次積木,讓 y 速度不斷改變,並讓小雞的 y 座標等於 y 速度,就能讓小雞自由落體移動。
為什麼要先設計自由落體呢?主要讓小雞不論從什麼位置開始,或者不論地面的位置在何處,小雞最後都能停留在地面上。
點擊綠旗執行後,會看見小雞以自由落體 ( 往下移動越來越快 ) 的方式,移動到最下方。
新增一個名為「站在地上」函式,勾選「執行完畢再更新畫面」,負責判斷小雞是否站在地上。
為什麼要勾選「執行完畢再更新畫面」呢?因為角色落下時,會發生超過地板的狀況,所以會使用「重複」積木計算與地面的距離,「執行完畢再更新畫面」可以讓重複的過程迅速完成。
函式的內容為一個「重複...直到」積木,如果小雞碰到地板,就重複將 y 座標加 1 ( 往上移動 ) 以及設定 y 速度為 0,直到沒有碰到地板為止,函式完成後,在自由落體的重複無限次積木在裡,呼叫「站在地上」的函式。
因為函式執行的速度遠快於外層的「重複無限次」積木,所以當小雞落地並往上離開地板的瞬間,就會停留在地板上。
點擊綠旗,小雞就會自由落體,並停留在地面上。
新增另外一個點擊綠旗的積木,當點擊綠旗,使用重複無限次積木,判斷按下「向右」鍵時,讓 x 速度變數不斷增加 2,按下「向左」鍵時,x 速度變數不斷減少 2,最後讓 x 速度乘以 0.8,就能讓放開鍵盤時,移動速度慢慢停下來。
完成效果
完成後,點擊綠旗,就能用鍵盤的左右鍵,控制小雞在地板上移動。
這個做法也適用於不同高低落差的地面,小雞也可以順利的移動上去。
範例解答
範例解答:角色控制 ( 地上移動 )
繼續閱讀
如果已經熟悉了角色在地上移動,就可以繼續閱讀「角色蹲下、左右轉」的文章。
文章連結:角色控制 ( 蹲下、左右轉 )
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~