沙漠裡冒出一隻又一隻的鬼魂,你用滑鼠控制瞄準器,按下去打中鬼魂就加 1 分。30 秒倒數內打到 10 隻就過關,時間到還不夠就結束。這堂要學三件新本事:用分身一次變出很多隻鬼、用滑鼠打東西得分、用變數做倒數計時。
今天要做出來的作品

老師上課會先打開
06_狩獵鬼魂.sb3按一次綠旗,大家一起看成品長什麼樣子。 📥 下載本堂講義 PDF
學習目標
- 分身:用「建立 自己 的分身」「當分身產生」「分身刪除」,只寫一隻鬼的程式就有很多隻鬼
- 滑鼠:用「定位到 鼠標 位置」讓瞄準器跟著滑鼠;用〈碰到 鼠標?〉且〈滑鼠鍵被按下?〉判斷有沒有打中
- 倒數計時:用變數「時間」加上「等待 1 秒」每秒減 1
- 複習廣播:舞台當裁判,喊「開始」「過關」「時間到」管整個遊戲
遊戲規則
- 按綠旗:分數歸零、時間從 30 開始倒數,鬼魂每秒多冒出一隻,在沙漠裡亂飄。
- 瞄準器跟著滑鼠走,按下滑鼠會變紅色;按下去時瞄準器碰到鬼,那隻鬼就消失、分數加 1。
- 過關:時間還沒到就打到 10 隻 → 跳出「過關!」。
- 結束:倒數到 0 還不到 10 隻 → 跳出「時間到!」。
- 不管哪一種結束,鬼魂和瞄準器都會藏起來、不再冒新的鬼。
| 誰 | 做什麼 |
|---|---|
| 舞台(裁判) | 分數、時間歸零 → 喊「開始」→ 每秒時間減 1 → 最後判斷喊「過關」或「時間到」 |
| 鬼魂(本尊) | 藏起來,收到「開始」後每秒生一個分身 |
| 鬼魂(分身) | 出現在隨機位置亂飄;被打中就加分、刪掉自己 |
| 瞄準器 | 一直跟著滑鼠,按下變紅 |
| 字卡 | 收到「過關」或「時間到」就顯示那一張 |
步驟 1:準備角色和背景

- 打開線上版 Scratch,點「建立」開新專案,小貓用不到可以刪掉。
- 點「選個背景」選 Desert(沙漠)。
- 點「選個角色」選 Ghost,名字改成「鬼魂」,尺寸改成 55。
- 滑到「選個角色」按鈕上,選「繪畫」畫一個瞄準器,名字改成「瞄準器」:用「圓形」和「線條」工具畫一個圈加十字,外框要粗一點。
- 在造型分頁對這個造型按右鍵 →「複製」,把第二個造型用「填滿」塗成紅色。兩個造型的名字改成「黑」和「紅」。
- 再畫一個角色「字卡」,用「T 文字」工具打上「過關!」;複製一個造型改成「時間到!」。兩個造型名字就叫「過關」「時間到」。

💡 為什麼瞄準器的線條要粗?角色在舞台上會縮小,線太細縮小後幾乎看不到,玩家就不知道自己瞄在哪。
💡 為什麼瞄準器要做兩個造型?按下滑鼠時換成紅色,玩家一看就知道「我有按到」。沒有這個回饋,玩家會以為程式壞了一直狂按。
💡 為什麼造型要取名「黑」「紅」?等一下程式要選「造型換成 紅」。名字看得懂,就不會選成預設的「造型1」「造型2」而搞混。
步驟 2:舞台當裁判——倒數計時
先到變數類按「建立一個變數」,做兩個變數:分數、時間(都選「適用於所有角色」)。再點右邊的舞台,拼出這一段:

- 當綠旗被點擊 → 背景換成 Desert → 分數設為 0 → 時間設為 30 → 廣播「開始」。
- 重複直到〈時間 = 0〉或〈分數 > 9〉:等待 1 秒 → 時間改變 -1。
- 如果〈分數 > 9〉那麼 廣播「過關」,否則 廣播「時間到」。
💡 為什麼倒數是「等待 1 秒,再改變 -1」?Scratch 跑得非常快,沒有「等待 1 秒」的話,一眨眼就從 30 扣到 0。每圈先等 1 秒才扣 1,時間才會一秒一秒地倒數。
💡 為什麼條件要用「或」?遊戲有兩種結束方式:時間用完、或是已經打到 10 隻。任何一個成立就該停,所以用「或」把兩個條件接起來。只寫「時間 = 0」的話,打到 10 隻還是要乾等到 30 秒才過關。
💡 為什麼迴圈結束後還要「如果…否則」?迴圈停下來只知道「有一個條件成立了」,不知道是哪一個。再問一次「分數 > 9 嗎?」,是就喊過關、不是就一定是時間到。
💡 為什麼由舞台來當裁判?分數和時間是整個遊戲共用的,由舞台一個人判斷、一個人廣播,結果只會有一個。讓每隻鬼各自判斷,十隻鬼可能喊十次「過關」。
步驟 3:瞄準器跟著滑鼠
點角色區的「瞄準器」:

- 當綠旗被點擊 → 顯示 → 圖層移到 最上 層 → 重複無限次〔定位到 鼠標 位置 → 如果〈滑鼠鍵被按下?〉那麼 造型換成 紅,否則 造型換成 黑〕。
- 當收到訊息「過關」→ 隱藏;當收到訊息「時間到」→ 隱藏。
💡 為什麼「定位到 鼠標」要放在「重複無限次」裡?定位只做一次,瞄準器只會跳到按綠旗那一瞬間的滑鼠位置就不動了。放進重複無限次,每一格畫面都重新跟上滑鼠。
💡 為什麼要「圖層移到 最上 層」?角色會一個疊一個。瞄準器在最上層,才不會被鬼魂擋住,玩家永遠看得到自己瞄在哪。
💡 為什麼用「如果…否則」,不是只寫「如果按下就換紅」?只寫一半的話,按一次就一直是紅色,放開也不會變回來。「否則」負責放開的時候換回黑色。
步驟 4:鬼魂分身——一隻程式、很多隻鬼

分身積木在控制類最下面。點角色區的「鬼魂」,先拼前三段:

- 當綠旗被點擊 → 隱藏。
- 當收到訊息「開始」→ 重複直到〈時間 = 0〉或〈分數 > 9〉〔建立 自己 的分身 → 等待 1 秒〕。
- 當分身產生 → 定位到 x:隨機取數 -200 到 200、y:隨機取數 -130 到 130 → 面朝 隨機取數 -180 到 180 度 → 顯示 → 重複無限次〔移動 4 點 → 碰到邊緣就反彈〕。
在角色資訊的「方向」轉盤裡把迴轉方式選成「左-右」,鬼魂反彈時才不會倒過來飄。
💡 為什麼用分身,不複製十個角色?複製角色的話,改一個地方(例如速度)就要改十次,還容易漏。分身是程式跑的時候才變出來的,只要寫一份程式,每一隻分身都照著做。
💡 為什麼本尊要隱藏?本尊只負責「生分身」,不參加遊戲。它如果也顯示,會有一隻鬼站著不動、打了也不會消失。分身出生時會跟本尊一樣是隱藏的,所以「當分身產生」裡要自己「顯示」。
💡 為什麼生分身也要「重複直到」,不用「重複無限次」?遊戲結束後就不該再生新的鬼。條件和舞台一樣,時間到或打滿 10 隻就停手,畫面才不會在「時間到!」後面又冒出新的鬼。
💡 為什麼位置和方向要用隨機?每隻分身都從同一個點、往同一個方向出發,會疊成一隻,看起來只有一隻鬼。隨機讓每一隻出現在不同地方、往不同方向飄。
✅ 檢查點:按綠旗,分數 0、時間 30 開始倒數,鬼魂每秒多一隻在沙漠裡亂飄,瞄準器跟著滑鼠、按下會變紅。
步驟 5:打中鬼魂加分

在鬼魂身上再拼第四段(見上面鬼魂的程式第四段):
當分身產生 → 等待直到〈碰到 鼠標?〉且〈滑鼠鍵被按下?〉→ 變數 分數 改變 1 → 隱藏 → 播放音效 Pop 直到結束 → 分身刪除。
音效在鬼魂的「音效」分頁按「選個音效」加一個 Pop。
💡 為什麼要「且」?只碰到滑鼠,瞄準器滑過去就算打中,太簡單了;只按下滑鼠,按在哪都算。兩個條件同時成立(瞄準器在鬼身上+按下去)才算打中,所以用「且」。
💡 為什麼一樣是「當分身產生」,要再開一段?第三段是「一直飄」,它在重複無限次裡永遠不會結束。「等打中」要跟「飄」同時進行,放在另一段帽子積木底下,兩件事才能一起做。
💡 為什麼每個分身自己檢查有沒有被打中?每個分身都會跑一份自己的程式。打中哪一隻,就是那一隻自己加分、自己刪掉,其他隻不受影響。
💡 為什麼先「隱藏」再播音效,最後才「分身刪除」?分身一刪掉,它的程式就全部停了,音效也會跟著被切掉。先藏起來讓玩家覺得「打掉了」,等音效播完再刪。
💡 為什麼要「分身刪除」,不是隱藏就好?藏起來的分身還是存在,Scratch 最多只能同時有 300 個分身。打掉的鬼沒刪,玩久了會塞滿,新的鬼就生不出來。
步驟 6:遊戲結束——字卡和停止

- 回到鬼魂,拼最後兩段:當收到訊息「過關」→ 隱藏 → 停止 這個物件的其它程式;「時間到」也一樣拼一段。
- 點「字卡」,拼出三段:

💡 為什麼要「停止 這個物件的其它程式」?分身還在「重複無限次」地飄、還在「等待直到」被打中。只有隱藏的話,它們在看不見的地方繼續跑,時間到之後還可能被打中而加分。停掉才真的結束。
💡 為什麼選「這個物件的其它程式」,不選「全部」?「停止 全部」會讓整個專案當場停住,字卡可能還來不及顯示就被停掉了。只停鬼魂自己的其它程式,裁判和字卡還能把結局演完。
💡 為什麼字卡也要「圖層移到 最上 層」?鬼魂可能剛好飄在中間,字卡被擋住就看不到結果了。
✅ 檢查點:打到 10 隻會跳出「過關!」、鬼魂和瞄準器都消失;重新按綠旗一隻都不打,倒數到 0 會跳出「時間到!」,而且分數從 0 開始。
步驟 7:存檔繳交

檔案 → 下載到你的電腦,再上傳到 Google Classroom。
💡 為什麼每堂都要下載?線上版 Scratch 沒登入時不會幫你存。關掉分頁作品就不見了,下載到電腦才留得住。
收不到、不會動?先查這幾件事
| 狀況 | 多半是 |
|---|---|
| 只有一隻鬼,或一隻都沒有 | 「建立 自己 的分身」沒放進重複裡;或「當分身產生」少了「顯示」 |
| 有一隻鬼站著不動、打不掉 | 本尊沒有在綠旗時「隱藏」,站著的那隻就是本尊 |
| 時間一下子就變 0 | 倒數的迴圈裡少了「等待 1 秒」 |
| 時間變負數還在扣 | 「重複直到」的條件寫錯,例如寫成「時間 < 0」或打錯變數 |
| 瞄準器不跟著滑鼠 | 「定位到 鼠標 位置」沒有放在重複無限次裡 |
| 滑過鬼就加分 | 條件少了「且〈滑鼠鍵被按下?〉」 |
| 按一下加好幾分 | 打中後少了「分身刪除」,同一隻一直被算 |
| 時間到了鬼還在飄 | 鬼魂收到「時間到」少了「停止 這個物件的其它程式」 |
| 瞄準器被鬼擋住 | 綠旗那段少了「圖層移到 最上 層」 |
換成你自己的(必做)
- ☐ 換一個主題:鬼魂換成別的角色(蟲子、氣球、星星…),背景也換成配合的場景
- ☐ 瞄準器換成你自己畫的(捕蟲網、手套、魔杖都可以),按下去要看得出變化
- ☐ 至少改一條規則:過關門檻、倒數秒數、生鬼的速度、鬼飄的速度選一個改
- ☐ 按一次綠旗,過關和時間到兩種結局都玩得到
挑戰(做完的人選一題)
- ★ 讓鬼魂一邊飄一邊換造型(Ghost 有 4 個造型),看起來像在動。
- ★ 打中時播放你自己選的音效,過關時播一段音樂。
- ★★ 加一種「炸彈鬼」分身:打到它扣 2 分(提示:再做一個角色,或讓分身用隨機換造型、打中時用「如果 造型編號 = …」判斷)。
- ★★ 分身出現 3 秒沒被打到就自己消失(提示:在「當分身產生」再開一段:等待 3 秒 → 分身刪除)。
- ★★★ 越打越難:分數每多 1 分,鬼魂飄得越快(提示:「移動 4 點」改成「移動(4 + 分數 ÷ 2)點」)。
互看檢查表(兩人互相打勾)
- ☐ 時間會一秒一秒倒數嗎?倒數到 0 會停嗎?
- ☐ 打到鬼魂,分數會增加嗎?同一隻會不會被算兩次?
- ☐ 遊戲結束時,鬼魂和瞄準器都會藏起來嗎?
- ☐ 第二次按綠旗,分數會歸零、鬼魂會重新出現嗎?
- ☐ 有沒有音效?
- ☐ 說得出:是誰廣播了「時間到」,又是誰收到了?為什麼只寫一份鬼魂程式就有很多隻鬼?
