小貓在草地上奔跑,石頭一顆一顆從右邊滾過來,按空白鍵跳過去!跳過 10 顆就過關,碰到石頭就結束。這是期末專題的參考範例:用速度變數做重力,再用碰到顏色讓小貓知道「我踩到地了」。
今天要做出來的作品

按下綠旗後:
- 小貓從空中掉下來,踩到綠色草地就停住。
- 石頭從右邊滾過來,按空白鍵跳起來,會自己落回草地。
- 每跳過一顆石頭加 1 分,10 分過關。
- 碰到石頭,小貓說「哎呀!撞到石頭了」,石頭全部停住。
老師上課會先打開
13_跳跳跑酷.sb3按一次綠旗,大家一起看成品長什麼樣子。 📥 下載本堂講義 PDF
學習目標
- 會用「碰到顏色」:碰到草地的綠色就停住
- 會做重力+跳躍:速度往下減、跳的時候設成正數
- 會用「如果…否則」決定:在地上就停、在空中就往下掉
- 複習:分身、隨機等待時間、廣播「開始」「過關」「遊戲結束」
遊戲規則
| 項目 | 規則 |
|---|---|
| 操作 | 空白鍵:跳(只有站在草地上才跳得起來) |
| 得分 | 石頭滾過小貓 +1 |
| 過關 | 分數 = 10 |
| 結束 | 小貓碰到石頭 |
| 廣播 | 開始(小貓)、過關(石頭)、遊戲結束(小貓) |
步驟 1:準備角色和草地背景

- 開新專案,小貓留著,名字改成「小貓」,尺寸 50。
- 「選個角色」挑 Rocks,名字改成「石頭」,尺寸 40。
- 點舞台 → 造型頁 → 用矩形畫:上面整片淺藍天空,最下面畫一條綠色草地(草地上緣在 y = -110 附近),可以再畫一條咖啡色泥土、幾朵白雲。
- 建兩個變數:分數、速度。
💡 為什麼草地要用一個「很特別」的綠色?「碰到顏色」只認顏色,不認東西。如果小貓身上、石頭上、雲上也有一模一樣的綠色,小貓會以為踩到地了。草地選一個別的地方都沒有用到的顏色,偵測才不會出錯。
💡 為什麼地面畫在背景裡,不做成角色?背景永遠在最下面、不會動,正好當地板。以後要加浮在空中的平台,也只要在背景上畫同一種綠色,小貓就能站上去,程式一個字都不用改。
步驟 2:小貓的重力(碰到顏色就停住)


點角色區的「小貓」,先拼這兩段(下一張是小貓的全部程式):

- 綠旗:定位到 (-150, 40)(空中)→ 分數、速度設為 0 → 廣播「開始」。
- 當收到「開始」(重力):重複無限次 { y 改變(速度)→ 如果 碰到顏色(草地綠) { 速度設為 0、y 設為 -86 } 否則 { 速度改變 -1 } }。
放「碰到顏色」時,點積木上的色塊 → 按最下面的滴管 → 到舞台上點一下草地,顏色就會一模一樣。
💡 為什麼要先「y 改變(速度)」再檢查顏色?先移動,才知道移動完有沒有踩到地。反過來先檢查的話,按跳的時候小貓還站在草地上,會馬上被「速度設為 0」把跳躍取消掉,永遠跳不起來。
💡 為什麼碰到草地還要「y 設為 -86」?小貓掉下來越來越快,最後一步可能一次往下 10 點,腳會陷進草地裡。y 設為 -86 是把它「拉回」剛好踩在草地上的高度,每次落地都站在同一個地方,看起來才整齊。
💡 為什麼要用滴管選顏色?用眼睛挑的綠色只要差一點點,Scratch 就認為是別的顏色,小貓會直接穿過草地掉下去。滴管吸的是草地真正的顏色。
步驟 3:跳躍與撞到石頭
繼續在小貓身上拼後面四段:

- 當空白鍵被按下:如果 碰到顏色(草地綠)→ 速度設為 13。
- 當收到「開始」:等待直到 碰到「石頭」→ 廣播「遊戲結束」。
- 當收到「遊戲結束」:停止這個物件的其它程式 → 說出「哎呀!撞到石頭了」。
- 當收到「過關」:說出「過關!跳過 10 顆石頭!」。
💡 為什麼跳之前要先檢查「碰到草地」?沒檢查的話,在空中一直按空白鍵就能一直往上飛,變成飛翔小鳥,石頭再多都撞不到。只有腳踩在地上才能跳,才像跑酷。
💡 為什麼速度設為 13 就會跳起來、又自己落下?速度 13 讓小貓往上 13 點,下一圈重力把速度減成 12、11、10……減到 0 就是最高點,接著變成負的開始往下掉,碰到草地再停住。跳躍和落下是同一個重力迴圈做的,不用另外寫「往下」。
💡 為什麼「遊戲結束」要停止其它程式,「過關」卻不用?撞到時要讓小貓定格在撞上的那一刻,玩家才看得到自己撞在哪;過關時石頭都消失了,小貓的重力迴圈繼續跑,如果正好在空中,才會自己落回草地站好,不會卡在半空中。
💡 為什麼撞到石頭要另外寫一段「等待直到」?重力迴圈已經很長了,再塞一個判斷會很難讀。另外一段只做一件事:一直等,等到碰到石頭就喊遊戲結束。一段程式一件事,壞了也好找。
步驟 4:石頭的程式(分身+隨機間隔)

- 綠旗:隱藏。
- 當收到「開始」:等待 2 秒 → 重複無限次 { 建立自己的分身、等待(隨機取數 1.2 到 2.2)秒 }。
- 當分身產生:定位到 (250, -100) → 顯示 → 重複直到 x < -150 { x 改變 -6 } → 分數改變 1 → 如果 分數 = 10 → 廣播「過關」→ 重複直到 x < -240 { x 改變 -6 } → 分身刪除。
- 當收到「遊戲結束」:停止這個物件的其它程式。
- 當收到「過關」:停止這個物件的其它程式 → 分身刪除。
💡 為什麼一開始要先等 2 秒?小貓是從空中掉下來的,要一點時間落地站穩。石頭一開局就滾過來,玩家還沒看清楚畫面就撞上了。
💡 為什麼等待的秒數要隨機?固定每 2 秒一顆,玩家數拍子就能過,閉著眼睛都會。隨機 1.2~2.2 秒,有時候兩顆靠很近、有時候隔很遠,要真的看著畫面才跳得過。
💡 為什麼滾到 x < -150 就加分?小貓站在 x = -150,石頭滾過這條線就代表小貓跳過去了。如果這時候撞到了,另一段「等待直到碰到石頭」會先喊遊戲結束,石頭就停住、分數也不會再加。
💡 為什麼過關由石頭廣播,這裡可以用「= 10」?石頭一顆一顆滾過小貓,不會兩顆同時加分,分數一定會剛好經過 10。(太空射擊的子彈可以一次打兩隻,才要用「> 9」。)
✅ 檢查點:按綠旗,小貓從空中掉到草地停住、不會抖;按空白鍵跳起來會自己落下,在空中再按不會再跳;跳過一顆分數 +1;10 分說「過關」、石頭全部消失;不跳撞到石頭會說「哎呀!」、石頭停住。
步驟 5:舞台和存檔

舞台:當綠旗被點擊 → 背景換成「草地」。
存檔:檔案 → 下載到你的電腦,再上傳到 Google Classroom。
💡 為什麼一定要下載?線上版 Scratch 不會自動存到你的電腦。
收不到、不會動?先查這幾件事
| 狀況 | 多半是 |
|---|---|
| 小貓穿過草地掉下去 | 「碰到顏色」的顏色和草地不一樣 → 用滴管重選 |
| 小貓在草地上一直抖 | 「y 設為」的數字太大,小貓被拉到草地上面、沒碰到綠色 → 改小一點(例如 -86 改 -88) |
| 按空白鍵跳不起來 | 重力迴圈裡先檢查顏色、再 y 改變,順序放反了 |
| 可以在空中一直跳 | 空白鍵那段少了「如果 碰到顏色」 |
| 一開始就遊戲結束 | 石頭本尊沒隱藏,或本尊擺在小貓身上 |
| 分數到 10 不過關 | 「如果 分數 = 10」放在迴圈外面別的地方,或分數沒在綠旗設回 0 |
換成你自己的(必做)
- ☐ 換掉小貓和石頭(例如:恐龍跳仙人掌、學生跳水坑)
- ☐ 重畫背景,地面換成你的顏色,記得用滴管重新選「碰到顏色」
- ☐ 改一條規則:跳的力道(13)、重力(-1)、石頭速度(-6)、隨機間隔,選一個改
- ☐ 改完自己玩三次,確定跳得過去
挑戰(做完的人選一題)
- ★ 跑步動畫:當收到「開始」→ 重複無限次 { 造型換成下一個、等待 0.15 秒 }(這段要放在別的角色或合併進現有程式,一個角色不要超過 6 段)。
- ★★ 背景上多畫一塊浮在空中的綠色平台,小貓可以跳上去(提示:平台高度不一樣,「y 設為 -86」就不能用了,要換成「重複直到 不碰到顏色 { y 改變 1 }」把小貓往上推出來,最後再「y 改變 -1」讓腳剛好踩在綠色上)。
- ★★ 石頭越來越快:新增變數「滾動速度」,每加 1 分就增加一點。
- ★★★ 按兩次跳得更高(二段跳):新增變數「跳了幾次」,落地時設為 0,最多只能跳 2 次。
互看檢查表(兩人互相打勾)
- ☐ 小貓站在草地上不會抖、不會陷下去
- ☐ 只有站在地上才跳得起來
- ☐ 石頭出現的間隔有長有短
- ☐ 過關和撞到兩種結局都看得到,結束後石頭停住
- ☐ 說得出:「碰到顏色」為什麼要用滴管選?
- ☐ 說得出:「遊戲結束」是誰廣播、誰收到、收到後做什麼
