--- tags: scratch --- # 五分鐘學 Scratch EP.04 - 遙控貓咪 ### :memo: 學習重點 - [ ] 了解「如果...那麼...」積木的功能 - [ ] 了解「按鍵被按下」積木的功能 - [ ] 了解角色的面朝方向屬性 --- ### :cat: 本期目標 上回我們已經學會如何建立一個全新的 Scratch 專案,不過,我們上次做的是一個不能控制的貓咪,只能回到原點之後往右走三步。今天,我們就要來製造一隻屬於自己的遙控貓咪。忘記怎麼建立新專案了嗎?趕快到:point_right:[這裡](https://hackmd.io/@goattl/Bkx3GXDtq)參考上一回的教學複習一下。 我們今天要做的作品-**遙控貓咪**,是一隻可以讓我們用鍵盤的「上、下、左、右鍵」控制的貓咪,在我們按下對應的方向鍵時,貓咪就會轉向按鍵的方向,然後往那個方向移動。 ![遙控貓咪](https://i.imgur.com/MqHlju1.gif) 我們可以從這個作品中觀察到幾個貓咪角色的行為: 1. 只有按下按鍵的時候貓咪會有動作 2. 貓咪會轉向(左右) 3. 貓咪會往按下的方向移動 那我們怎麼用 Scratch 的積木達成這些功能呢?我們一個一個來看 ### :cat: 讓角色對鍵盤做反應 首先,我們要讓貓咪對於鍵盤的按鍵有反應,今天要用到的按鍵只有上下左右。鍵盤的上下左右鍵在 Enter 的右下方、數字鍵的左方 ![](https://i.imgur.com/6V6gKsP.png) 那麼,我們該怎麼讓角色只在按下按鍵的時候有動作呢?這裡,我們要介紹「如果...那麼...」積木。在<span style="color:Orange; font-weight: 800">控制</span>類的積木櫃裡面,可以找到下方圖片的積木。 ![「如果...那麼...」積木](https://i.imgur.com/IKa3zzk.jpg) 這個積木就能讓角色在不同的情況下做不同的事,就好像在照樣造句一樣,例如: <span style="color:Orange;">如果</span>考試 100 分,<span style="color:Orange;">那麼</span>我就可以跟家人一起出去玩 <span style="color:Orange;">如果</span>看到綠燈,<span style="color:Orange;">那麼</span>我就必須停下來 <span style="color:Orange;">如果</span>今天有體育課,<span style="color:Orange;">那麼</span>我就要穿運動服 聰明的你一定已經想到了,如果要讓角色只在方向鍵被按下的時候移動,那麼我們的造句就要變成 <span style="color:Orange;">如果</span>向上鍵(↑)被按下<span style="color:Orange;">那麼</span>貓咪就往上走 <span style="color:Orange;">如果</span>向下鍵(↓)被按下<span style="color:Orange;">那麼</span>貓咪就往下走 <span style="color:Orange;">如果</span>向左鍵(←)被按下<span style="color:Orange;">那麼</span>貓咪就往左走 <span style="color:Orange;">如果</span>向右鍵(→)被按下<span style="color:Orange;">那麼</span>貓咪就往右走 可是問題來了,我們要怎麼讓角色知道鍵盤的按鍵被按下了呢?這時候我們就要用到另一個「XX 鍵被按下」積木,這個積木可以讓我們選擇鍵盤按鍵,並且幫我們判斷我們選的按鍵有沒有被按下。 我們到</span><span style="color:DodgerBlue;">淺藍</span>色積木櫃,找到「空白鍵被按下?」積木,然後點一下積木上的三角形,把空白鍵換成向上鍵,這樣就可以讓我們的角色知向上鍵被按下了。只要把 「如果...那麼...」積木跟「向上鍵被按下?」積木組合起來,就可以讓角色只在向上鍵被按下的時候做事情。 ![](https://i.imgur.com/zTkFOwc.gif) <br> ### :cat: 讓貓咪暈頭轉向 在上一個小節我們學會了怎麼組合「如果..那麼...」積木和「向上按鍵被按下?」積木。在這個小節,我們要來加入讓貓咪動起來的積木。實作之前,我們必須先認識一下 Scratch 中的「方向」概念。 Scratch 中的每個角色都有一個「方向」屬性,我們的貓咪當然也不例外,在舞台下方的角色屬性區域,我們可以看到目前角色的方向。方向的單位是角度,向上是 0 度;向右是 90度;向下是 180度;向左是 270 度或 -90 度。如果忘記這些角度與方向的對應也沒關係,只要點一下方向的屬性,就會跑出一個圓盤讓我們拖拉箭頭選定角度。如果記得角度的話更好,可以直接輸入角度準確的指定方向。 ![](https://i.imgur.com/AvIUZFQ.gif) 在選擇角度的圓盤下方有三個按鈕可以按,他們分別對應到三個不同的圖片旋轉方式:不設限、左-右、不旋轉。這次的專案我們要選擇左-右。再點開一次選擇方向的圓盤然後選擇左-右吧~ ![](https://i.imgur.com/jnv9weB.gif) <br> ### :cat: 航向偉大航道吧! 方向確定之後只要使用「移動 XX 點」!積木,角色就會沿著自己的方向移動設定的長度。方向往左就往左走,方向往右就往右走,依此類推。現在,就讓我們把設定方向的積木還有移動的積木放到「如果...那麼...」的積木內的空白區域 ![](https://i.imgur.com/Sc1HzIB.gif) 然後,按下綠旗,就會發現我們的貓咪...<span style="font-size: larger; font-weight: 800">不會動</span> 為什麼呢?因為我們沒有放「當綠旗被點擊」積木,趕快補一下吧! ![](https://i.imgur.com/WlXPvJy.jpg) 然後,按下綠旗,就會發現我們的貓咪...<span style="font-size: x-large; font-weight: 800">還是不會動</span> 為什麼呢?其實不是不會動,而是電腦的速度太快了,它只用了 0.0001 秒就動完,然後就坐著休息了! 既然如此,我們就殘忍的讓貓咪永遠不能休息吧~從<span style="color:Orange;">控制</span>積木櫃找到「重複無限次」積木,然後用它把「如果...那麼...」積木夾住,這個積木會命令貓咪永遠不能休息,要一直重複同樣的工作。 再次點下綠旗,我們貓咪就可以往上走囉! ![夾住如果積木](https://i.imgur.com/o2WbqrL.gif) 不過,現在我們的貓咪只會往上走,不能往其他方向,因為我們的程式只處理了向上鍵被按下的狀況。剩下的向下、向左、向右的程式我們都還沒寫。其他方向的程式基本上跟向上一模一樣,只需要改一下按鍵跟方向。 你說:「老師~~ 幾乎一模一樣,能不能直接複製來改?」 欸!還真的可以喔!請對「如果...那麼...」積木點<span style="color:red;">右鍵</span>,然後選「複製」,就能複製一整塊的積木,我們只要把複製出來的積木改一下按鍵跟方向,這次的遙控貓咪就完成囉~ ![](https://i.imgur.com/pFY95vl.gif) ※ 請注意,上面的動畫只完成上下按鍵的程式,左右的程式要同學自己完成喔!完整的程式可以參考:point_right:[老師的範例](https://scratch.mit.edu/projects/709348602/) <hr> 同學們,我們準備關電腦下課囉~ 咦?怎麼我要關掉瀏覽器的時候跑出這個「對話盒」(Dialog Box) 呢? ![](https://i.imgur.com/ATapRVr.jpg) 我很想告訴你,但是時間超過 5 分鐘了,我們先點左邊的離開按鈕,讓瀏覽器順利關閉。然後把這個問題放在心裡,猜一下答案,我們下次公布答案!