兩個人坐在同一台電腦前,一個按 A、一個按 L,誰連按得快,誰的螃蟹就先衝過終點線。這次要學三件事:連按鍵才會前進、用計時器記成績、碰到終點線就判定輸贏。螃蟹一邊跑一邊換造型,看起來就像在走路。
今天要做出來的作品

按下綠旗後:
- 裁判說規則,接著倒數 3、2、1,喊「開跑!」。
- 紅螃蟹靠 A 鍵、綠螃蟹靠 L 鍵,按一下走一步,按住不放不會跑。
- 誰先碰到終點線,誰就說「我贏了!」,裁判報出冠軍用了幾秒,輸的那隻再怎麼按都不會動了。
老師上課會先打開
02_奔跑吧螃蟹.sb3按一次綠旗,大家一起看成品長什麼樣子。 📥 下載本堂講義 PDF
學習目標
- 會用「等待直到」和「鍵被按下?」做出「連按才會前進」
- 會用「計時器重置」和「計時器」記下比賽花了幾秒
- 會用「重複直到 碰到 終點線」判定誰先到終點
- 會用「造型換成下一個」做出走路的動畫,用「圖像效果 顏色」幫角色換顏色
- 複習廣播:裁判喊「開跑」、贏的人喊「結束」
遊戲規則
| 項目 | 規則 |
|---|---|
| 怎麼玩 | 紅螃蟹連按 A,綠螃蟹連按 L,每按一下往前走 15 點 |
| 什麼時候開始 | 裁判喊「開跑!」之後才算,倒數時按了也不會動 |
| 怎麼算贏 | 先碰到終點線的螃蟹贏 |
| 成績 | 從「開跑」到有人碰到終點線,一共幾秒 |
| 什麼時候結束 | 有人贏了就結束,兩隻螃蟹都停下來 |
步驟 1:畫跑道、畫終點線
- 開新專案(檔案 → 新建專案),刪掉小貓。
- 點右下角的舞台,切到「背景」分頁,用矩形工具畫出三塊:上面一條綠色草地、中間一大塊紅色跑道、下面一條灰色看台。想要分兩條跑道,就在中間畫一條白線。
- 點「選個角色」→「繪畫」,畫一個直直的長方形當終點線(範例是黑白格子),角色名字改成「終點線」,拖到舞台右邊,上下蓋滿跑道。
💡 為什麼終點線要畫成「角色」,不直接畫在背景上?因為等一下螃蟹要問「我碰到終點線了嗎?」,「碰到」積木的下拉選單裡只能選角色。畫在背景上,Scratch 分不出哪一塊是終點線。
💡 為什麼終點線要上下蓋滿跑道?兩隻螃蟹走在不同高度,終點線太短,下面那條跑道的螃蟹會從終點線下面「穿過去」,一直走到舞台邊緣也不會贏。
步驟 2:放兩隻螃蟹和裁判
- 選個角色 → 找 Crab,名字改成「紅螃蟹」,尺寸改成 50。
- 在紅螃蟹上按右鍵 →「複製」,名字改成「綠螃蟹」。
- 再選一個人當裁判(範例是 Devin),尺寸 45,放在左上角的草地上。
💡 為什麼用「複製」做第二隻螃蟹?等一下寫好紅螃蟹的程式再複製,綠螃蟹的程式就一起複製過去了,只要改兩個地方(起跑位置、按哪個鍵)。先複製再寫,兩隻要各寫一次。
步驟 3:寫裁判的程式——說規則、倒數、喊開跑

- 綠旗那段:定位 → 把變數「成績」設為 0 → 說規則 3 秒 → 說 3、2、1 各 1 秒 → 說「開跑!」→ 廣播「開跑」。
- 收到「結束」那段:用「字串組合」說出「比賽結束!冠軍用了 ○○ 秒」。
先到變數類「建立一個變數」,名字打「成績」,選「適用於所有角色」。

💡 為什麼「廣播開跑」要放在倒數的最後面?廣播一喊,螃蟹那邊就開始收按鍵了。放在倒數前面,還在數 3、2、1 的時候就有人偷跑。
💡 為什麼要用「字串組合」?「說出」的格子只能放一樣東西。想把「比賽結束!冠軍用了」、成績的數字、「秒」接成一句話,就要用字串組合把它們黏起來;兩個字串組合套在一起,就能接三段。
步驟 4:舞台——開跑那一刻按下碼錶


點右下角的舞台,拼:當收到訊息「開跑」→ 計時器重置。
💡 為什麼計時器要在「開跑」時重置,不是按綠旗時?計時器就像一個一直在跑的碼錶,Scratch 一打開就開始數了。綠旗後還要說規則、倒數,總共 6 秒;在綠旗就重置,成績會多算這 6 秒。比賽從哪一刻開始,就在那一刻重置。
步驟 5:寫紅螃蟹的程式——連按才會跑


- 綠旗那段:定位到起跑線 → 造型換成 crab-a → 說出(空白,把上一場的「我贏了!」擦掉)。
- 收到「開跑」那段:
– 「重複直到 碰到 終點線?」裡面放四塊:等待直到 a 鍵被按下? → 移動 15 點 → 造型換成下一個 → 等待直到 a 鍵被按下?不成立。 – 重複結束(代表碰到終點線了)→ 把「成績」設為計時器 → 說出「我贏了!」→ 廣播「結束」。
- 收到「結束」那段:停止「這個物件的其它程式」。

💡 為什麼要「等待直到放開」?少了這一塊,按住 A 不放,迴圈每一圈都看到「a 鍵被按下」,螃蟹就自己一路衝到終點,根本不用連按。加上它,每一步都要按下、放開一次,才算按一下。
💡 為什麼不用「當 a 鍵被按下」那個事件積木?那一塊在任何時候都有效:倒數時按會偷跑,比賽結束後按還會繼續走。寫在「收到開跑」裡面的迴圈,開跑之前根本還沒開始聽鍵盤,比賽結束時迴圈也被停掉了。
💡 為什麼用「重複直到 碰到終點線」判定贏?迴圈每一圈都會檢查一次「碰到終點線了嗎?」。還沒碰到就繼續等下一次按鍵;碰到了就跳出迴圈,往下做「我贏了」。迴圈下面的積木,只有贏的時候才會做到。
💡 為什麼每走一步要換下一個造型?Crab 有兩個造型,腳的位置不一樣。一步換一次,看起來就像腳在動;不換的話,螃蟹會像被推著在地上滑。
💡 為什麼收到「結束」要停止「這個物件的其它程式」?輸的那隻還卡在迴圈裡等按鍵。喊了結束卻沒停掉它,輸的人繼續按,還是會碰到終點線、再喊一次「我贏了」。
步驟 6:改綠螃蟹——只改三個地方

點角色區的綠螃蟹(它的程式是複製紅螃蟹來的):
- 綠旗那段的 y 改成 -65(下面那條跑道)。
- 兩個「a 鍵被按下?」都改成 l 鍵。
- 綠旗那段最後加上「圖像效果 顏色 設為 70」,把紅色變綠色。
💡 為什麼兩個按鍵積木都要改?「等待直到按下」和「等待直到放開」是一對的。只改一個,綠螃蟹會變成「按 L 走一步、要放開 A 才能走下一步」,兩個人會互相卡住。
💡 為什麼用「設為」不用「改變」?「改變 70」是在現在的顏色上再加 70,每按一次綠旗顏色就變一次;「設為 70」不管按幾次綠旗,都是同一個顏色。
✅ 檢查點:按綠旗,倒數時按 A、L 螃蟹都不能動;開跑後按住 A 不放,紅螃蟹只走一步;連按先到終點的說「我贏了!」,裁判報出秒數,輸的那隻再按也不會動。
步驟 7:存檔
檔案 → 下載到你的電腦,再上傳到 Google Classroom。
💡 線上版 Scratch 沒有登入不會幫你存檔。下課前沒下載,關掉分頁作品就不見了。
收不到、不會動?先查這幾件事
| 狀況 | 多半是 |
|---|---|
| 按了鍵螃蟹完全不動 | 「開跑」的訊息名稱打錯;或裁判的「廣播開跑」沒接上去 |
| 按住不放螃蟹就一路跑到終點 | 少了「等待直到 ○ 鍵被按下?不成立」 |
| 碰到終點線也不會停、一直走到邊緣 | 「碰到」選成了別的東西(例如邊緣、滑鼠);或終點線太短,螃蟹從旁邊穿過去 |
| 成績多了好幾秒 | 計時器重置放在綠旗那段,要改成收到「開跑」才重置 |
| 比完了輸的還能走、還會說我贏了 | 少了「收到結束 → 停止這個物件的其它程式」 |
| 綠螃蟹按 L 走一步就卡住 | 綠螃蟹裡還有一個「a 鍵」沒改成 l |
| 第二次按綠旗「我贏了」還掛在頭上 | 綠旗那段少了「說出(空白)」 |
換成你自己的(必做)
- ☐ 換掉角色:不一定要螃蟹,可以是賽車、馬、兩個同學的頭像
- ☐ 換掉跑道:自己畫一條不一樣的跑道(泳池、太空、操場都可以)
- ☐ 裁判說的話換成你自己的規則說明
- ☐ 至少改一條規則:例如每步走的距離、按的鍵、倒數秒數
挑戰(做完的人選一題)
- ★ 讓輸的那隻螃蟹也說一句話(提示:收到「結束」時,如果沒有碰到終點線,就說「下次再來!」)。
- ★ 加第三隻螃蟹,變成三個人比賽(要再挑一個沒人用的鍵)。
- ★★ 讓螃蟹一定要輪流按兩個鍵(例如 A、S 交替)才會前進,只按同一個鍵不會動。
- ★★ 加一個「最佳紀錄」變數:成績比最佳紀錄少,就更新最佳紀錄並說「破紀錄!」。
- ★★★ 改成一個人跟電腦比:綠螃蟹不用按鍵,改成每隔一小段時間自己走一步(像舊版那樣用「在 1 到 10 間隨機取數」決定步數),看你能不能贏過電腦。
互看檢查表(兩人互相打勾)
- ☐ 倒數的時候偷按,螃蟹不會動
- ☐ 按住不放只會走一步,一定要連按
- ☐ 先碰到終點線的那隻說「我贏了!」,另一隻停下來不能再動
- ☐ 裁判報的秒數,跟自己數的差不多(沒有多算倒數那幾秒)
- ☐ 說得出:螃蟹到底怎麼走路的?(等按下 → 走一步、換造型 → 等放開,一直重複到碰到終點線)
- ☐ 說得出:是誰廣播「開跑」、誰收到;是誰廣播「結束」、誰收到
