慣性移動 ( 鍵盤 )
這篇文章會介紹,如何在 Scratch 裡使用鍵盤偵測、角色移動、重複無限次、邏輯...等積木,實作鍵盤控制角色移動,在放開鍵盤按鍵時,模擬帶有摩擦力減速的慣性運動。
積木程式原理
在 Scratch 裡,有兩個方式可以偵測鍵盤的按鍵是否被按下:
因為 Scratch 沒有偵測鍵盤是否放開的積木,所以使用「重複無限次」、「如果...那麼」搭配「...鍵被按下」的方式會比較容易實作鍵盤放開的功能,下方的程式設定按下鍵盤的向上鍵,貓咪就往上移動,按下向下鍵就往下移動,按下向左鍵就往左移動,按下向右鍵就往右移動。點擊綠旗後,就能夠用鍵盤的上下左右鍵操控貓咪。
上面程式的角色移動屬於「等速運動」,如果要做得更為精緻,可以加入「慣性」的機制 ( 啟動時加速,靠近時減速的運動現象 )。
要改成慣性機制,必須先將上面的程式改成用「變數」的方式呈現,一開始加入 x 和 y 兩個變數,設定在按下上下左右鍵時,改變 x 和 y 的數值,接著讓角色根據 x 和 y 改變移動位置,最後再設定 x 和 y 變數為 0 ( 這樣表示如果沒有按下鍵盤,角色就不會移動 )。點擊綠旗後,能產生和原本的程式一樣的控制效果。
將最後兩個 x 和 y 變數,從原本的 0,改成_「x * 0.8」和「y * 0.8」,這樣就能夠讓 x 和 y 的數值在每次重複時變小,直到趨近於零,而不是直接變成 0,就能模擬減速的效果。
完成效果
點擊綠旗,用鍵盤操控貓咪角色,放開鍵盤就會看到貓咪做減速的移動直到不動為止。
範例解答
範例解答:慣性移動 ( 鍵盤 )
延伸練習
如果已經熟悉了慣性移動的原理,還可以嘗試更多好玩的作法:
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~