前幾次課介紹了Scratch界面中的各個元素,這為後面的學習打下了良好的基礎,本節課將繼續探索學習Scratch的動作積木。
如果要製作遊戲或者帶有動畫的程序,使用動作模塊中的積木移動角色是最常見的操作。所謂角色的移動,是指命令角色移動到舞臺中某一個具體的點,或者是旋轉到一個特定的方向,本節課先來學習角色的移動。
一般來說,動作分為絕對動作和相對動作,本節課先學習絕對動作。
絕對動作
首先來介紹一下坐標系,坐標系是一種用來定位物體位置的參考標準。在scratch 中使用的坐標系是笛卡爾坐標系,Scratch中的舞臺,是完全遵循坐標系規則的。
如圖1所示,舞臺是一個480X360的矩形,其中心點為(0,0),在舞臺中,任何一個位置都可以用具體的坐標值(x,y)來標識,所以在Scratch中,角色的移動,也可以看作是角色坐標值的變化。在Scratch的動作模塊中,共有四個絕對動作積木(移動到(x,y),在……秒內滑行到(x,y),將x坐標設定為和將y坐標設定為),如圖2所示,它們能精確地把角色移動到舞臺的某個具體位置。


下面我們一起製作一個簡單的案例演示絕對動作。
場景:猴子角色Monkey位置為(-101,-105),它想要吃到目標角色Bananas,目標的位置坐標是(106,99)。猴子吃到香蕉最簡單的方法就是直接使用積木移動到(106,99),動態效果如圖3所示。x坐標告訴角色在舞臺上水平移動的距離,y坐標告訴角色垂直的距離。

猴子角色Monkey在移動時有兩個問題:首先它沒有面向角色Bananas,而是面向上方移動;然後是直接從點(-101,-105)移動到了點(106,99)(使用的移動到(x,y)積木)。為了緩慢移動,而非瞬間移動,我們可以使用「在……秒內滑行到(x,y)」積木,如圖3所示。雖然這兩塊積木都能將角色移動到某個具體位置,但是此積木能設置猴子移動時花費的時間,更人性化和符合實際場景。
另外,猴子還有另外一種吃到香蕉的方式,那就是分別改變猴子角色x,y坐標值,動態效果如圖4所示。

在腳本區的右上角,有一個半透明的角色縮略圖及其當前坐標數值。如果希望在舞臺上實時顯示其坐標值,可以選中動作模塊中x坐標,y坐標積木前的複選框(上篇文章有過介紹,如忘記,可去查看)。
註:角色坐標本質上是指造型的中心位置的坐標。所以說,把角色移動到點(x,y)的動作,本質上就是設置角色的中心坐標為(x,y),因此,當在角色中導入造型後,一定要注意其中心位置。
OK,這節課先到這裡,歡迎關注我,大家一起探討Scratch少兒編程內容。