草地上有六個洞,地鼠會從隨機的洞冒出來,只探頭 1 秒就縮回去。用滑鼠點到牠就加 1 分,30 秒一到遊戲結束,看你打到幾隻。這款是狩獵鬼魂的改編:一樣用分身,但這次學把分身放到固定的幾個位置上、用 Scratch 內建的計時器算時間,還有每個分身都能各自被點擊

今天要做出來的作品

執行結果:地鼠從洞冒出來、點到加分、剩下時間越來越少、時間到

老師上課會先打開 07_打地鼠.sb3 按一次綠旗,大家一起看成品長什麼樣子。 📥 下載本堂講義 PDF

學習目標

  • 分身+隨機位置:用「隨機取數 × 間距」,讓分身只出現在六個洞上,不會出現在洞和洞中間
  • 計時器:用「計時器重置」和「計時器」算經過幾秒,不必自己一秒一秒扣
  • 當角色被點擊也能用在分身上:點到哪一隻,就是那一隻自己加分、自己消失
  • 複習:分身刪除、廣播「開始」「時間到」

遊戲規則

  • 按綠旗:分數歸零、剩下時間 30,開始計時。
  • 每 0.7 秒就有一隻地鼠從六個洞裡隨機挑一個冒出來,1 秒後自己縮回去
  • 用滑鼠點到地鼠:加 1 分,那隻地鼠馬上消失。
  • 計時器超過 30 秒:地鼠全部消失、不再冒出來,跳出「時間到!」,分數就是你的成績。
做什麼
舞台歸零、重置計時器、喊「開始」;一直更新剩下時間;超過 30 秒喊「時間到」
地鼠(本尊)藏起來,收到「開始」後每 0.7 秒生一個分身,30 秒到就停
地鼠(分身)跳到隨機一個洞 → 顯示 1 秒 → 刪掉自己;被點到就加分、刪掉自己
字卡收到「時間到」就顯示

步驟 1:畫草地、準備角色

角色區:地鼠、字卡
  1. 開新專案,刪掉小貓。
  2. 點右下角舞台,到「背景」分頁用「繪畫」畫一張背景,名字改成「草地」:上面畫一條藍天、其他塗成綠色,再用「圓形」工具畫六個深咖啡色的洞,排成兩列、每列三個
  3. 點「選個角色」選 Mouse1,名字改成「地鼠」。
  4. 畫一個「字卡」角色,用「T 文字」工具打上「時間到!」。

💡 為什麼洞要排成整齊的兩列三欄?洞的位置是等一下程式要算出來的。排整齊,每個洞的 x 就是 -150、0、150,y 就是 0、-130,一個乘法就能算到;洞亂放的話就得一個一個記座標。

💡 為什麼洞要畫在背景,不做成角色?洞不會動、也不用寫程式,放在背景最簡單。做成角色的話,還可能擋住地鼠、讓地鼠點不到。

步驟 2:舞台用計時器算 30 秒

偵測類的計時器和計時器重置

先建兩個變數:分數剩下時間。再點舞台,拼出這段:

舞台的程式:重置計時器、廣播開始、重複更新剩下時間、時間到
  1. 當綠旗被點擊 → 背景換成 草地 → 分數設為 0 → 剩下時間設為 30 → 計時器重置 → 廣播「開始」。
  2. 重複直到計時器 > 30〉:剩下時間設為(四捨五入數值(30 - 計時器))。
  3. 剩下時間設為 0 → 廣播「時間到」。

💡 為什麼一開始要「計時器重置」?計時器從你打開 Scratch 就一直在跑,不會因為按綠旗就歸零。不重置的話,也許一按綠旗計時器早就超過 30,遊戲馬上結束。

💡 為什麼用計時器,不像狩獵鬼魂那樣「等待 1 秒、減 1」?計時器是 Scratch 自己在算的真實時間,程式卡一下也不會算錯。而且判斷「過了 30 秒沒」只要一句〈計時器 > 30〉。

💡 為什麼要「四捨五入數值」?計時器會算到小數點,30 - 計時器 會變成 17.4836 這種數字,玩家看得眼花。四捨五入之後只顯示整數秒。

💡 為什麼迴圈後面還要「剩下時間設為 0」?迴圈是在計時器剛好超過 30 時停的,最後一次算出來可能是 1 或 -0。直接設成 0,畫面才乾淨。

步驟 3:地鼠分身從隨機的洞冒出來

運算類:乘法、隨機取數、四捨五入數值

點「地鼠」,拼前三段:

地鼠的程式:綠旗隱藏、收到開始生分身、分身跳到隨機的洞、被點擊加分、時間到刪除
  1. 當綠旗被點擊 → 隱藏。
  2. 當收到訊息「開始」→ 重複直到〈計時器 > 30〉〔建立 自己 的分身 → 等待 0.7 秒〕。
  3. 當分身產生 → 定位到 x:(隨機取數 -1 到 1× 150、y:(隨機取數 -1 到 0× 130 → 顯示 → 等待 1 秒 → 分身刪除。

💡 為什麼 x 要寫「隨機取數 -1 到 1 再乘 150」,不直接寫「隨機取數 -150 到 150」?直接取的話,可能取到 -87、23 這種數字,地鼠會出現在草地中間、不在洞上。先隨機取 -1、0、1 三個整數,再乘上洞和洞的距離 150,結果只可能是 -150、0、150,剛好是三個洞。

💡 為什麼 y 是「-1 到 0 乘 130」?只有兩列洞,y 只能是 0(上面那列)或 -130(下面那列)。取 -1 或 0 再乘 130,就只會落在這兩列。

💡 為什麼分身「等待 1 秒 → 分身刪除」?地鼠探頭一下就要縮回去,玩家才需要手腳快。不刪的話,地鼠只會越冒越多,最後滿地都是,隨便點都點得到。

💡 為什麼本尊要隱藏?本尊只負責生分身。它如果顯示,會一直站在舞台正中間(0, 0)、不在洞上,點它也會加分,遊戲就不公平了。

✅ 檢查點:按綠旗,剩下時間從 30 開始變少,地鼠每次都從某個洞冒出來、1 秒後消失;不點牠,畫面上最多只有一兩隻。

步驟 4:點到地鼠加分

事件類的當角色被點擊

在地鼠身上拼第四段(見上面地鼠的程式):當角色被點擊 → 變數 分數 改變 1 → 隱藏 → 播放音效 pop 直到結束 → 分身刪除。

💡 為什麼分身也能用「當角色被點擊」?每個分身都有一份自己的程式。你點到哪一隻,就只有那一隻收到「被點擊」,其他地鼠不受影響。本尊藏起來了點不到,所以只有分身會被點。

💡 為什麼這裡用「當角色被點擊」,狩獵鬼魂卻用〈碰到 鼠標〉且〈滑鼠鍵被按下〉?狩獵鬼魂有一個瞄準器永遠蓋在最上層,滑鼠點下去點到的是瞄準器,鬼魂收不到「被點擊」。打地鼠沒有東西擋在上面,直接用「當角色被點擊」最簡單。

💡 為什麼點到後先隱藏、再播音效、最後才刪除?分身一刪掉,它的音效也會跟著停。先藏起來,玩家看到地鼠立刻被打掉;等音效播完再刪。

步驟 5:時間到

  1. 地鼠再加一段:當收到訊息「時間到」→ 分身刪除
  2. 字卡:當綠旗被點擊 → 隱藏;當收到訊息「時間到」→ 圖層移到 最上 層 → 顯示。
字卡的程式:綠旗隱藏、收到時間到就顯示

💡 為什麼「時間到」要讓分身刪除?時間到的那一刻,可能還有一兩隻地鼠正探著頭。不刪的話,玩家還能點到牠們,時間到了分數還在加。

💡 為什麼生分身的迴圈也用〈計時器 > 30〉當條件?時間到之後就不該再冒新的地鼠。條件和舞台一樣,舞台喊「時間到」的時候,本尊也剛好停手。

✅ 檢查點:一直點地鼠,分數會增加;30 秒到跳出「時間到!」,地鼠全部消失,之後怎麼點分數都不會變。再按一次綠旗,分數從 0 開始。

步驟 6:存檔繳交

檔案選單的下載到你的電腦

檔案 → 下載到你的電腦,再上傳到 Google Classroom。

💡 為什麼一定要下載?線上版 Scratch 沒登入不會幫你存,關掉分頁就沒了。

收不到、不會動?先查這幾件事

狀況多半是
一按綠旗就時間到少了「計時器重置」,計時器早就超過 30
剩下時間出現一長串小數少了「四捨五入數值」
地鼠出現在洞和洞中間定位寫成「隨機取數 -150 到 150」,要改成「隨機取數 -1 到 1」× 150
地鼠只會在同一個洞隨機取數的兩個數字一樣(例如 1 到 1),或乘法放錯格子
舞台中間站著一隻不會消失的地鼠本尊綠旗時沒有隱藏
滿地都是地鼠「當分身產生」最後少了「等待 1 秒 → 分身刪除」
點了沒加分「當角色被點擊」寫到字卡或舞台身上了;或變數選錯
時間到還能繼續加分地鼠收到「時間到」少了「分身刪除」

換成你自己的(必做)

  • ☐ 換一個主題:地鼠換成別的角色(打蚊子、抓寶可夢、戳泡泡…),背景也重畫
  • ☐ 至少改一條規則:洞的數量或排法、地鼠探頭的秒數、生分身的速度、遊戲秒數選一個改
  • ☐ 洞如果改了位置,程式裡的乘法數字也要跟著改,而且地鼠要真的出現在洞上
  • ☐ 按一次綠旗能從頭玩到「時間到!」

挑戰(做完的人選一題)

  • ★ 時間到時,字卡說出「你打到 ○ 隻!」(提示:外觀類「說出」+運算類「字串組合」)。
  • ★ 地鼠被點到時換成另一個造型(Mouse1 有兩個造型),再消失。
  • ★★ 加一種「炸彈」角色也從洞裡冒出來,點到扣 3 分。
  • ★★ 改成三列三欄九個洞(提示:y 也改成「隨機取數 -1 到 1」× 間距,背景重畫)。
  • ★★★ 越來越快:剩下時間越少,地鼠探頭的時間越短(提示:「等待 1 秒」改成「等待(剩下時間 ÷ 30)秒」,再加一點保底秒數)。

互看檢查表(兩人互相打勾)

  • ☐ 地鼠每次都出現在洞上,不會出現在草地中間嗎?
  • ☐ 不點的話,地鼠會自己縮回去嗎?
  • ☐ 點到一隻,只有那一隻消失、分數加 1 嗎?
  • ☐ 剩下時間是整數、會倒數到 0,然後跳出「時間到!」嗎?
  • ☐ 時間到之後點畫面,分數還會變嗎?(不該變)
  • ☐ 說得出:為什麼「隨機取數 -1 到 1」乘 150,地鼠就只會出現在三個洞上?