圖看不清楚就點一下,用滾輪或下方拉桿放大,按住圖片可以移動,按 × 關閉。

📦 動手前先下載素材

這幾樣是自己畫的,Scratch 素材庫裡找不到,點按鈕下載:

⬇ 字卡.sprite3⬇ 瞄準器.sprite3

放進專案:

  • 🧩 角色:滑鼠移到角色區右下角的「選個角色」→ 點「上傳角色」

講義寫「畫」的地方,直接用這些檔案(想自己畫也可以)。上傳的只有造型,程式還是要照講義自己拼。

用滑鼠控制瞄準器,按下打中鬼魂加 1 分。30 秒內打到 10 隻過關,不夠就結束。今天練分身、滑鼠命中判斷和變數倒數計時。

今天要做出來的作品

執行結果:鬼魂分身冒出來、按下滑鼠瞄準器變紅、打中加分、過關、鬼越來越多、時間到

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

今天做什麼

做什麼做完會有什麼
步驟 1:準備角色和背景鬼魂、瞄準器、字卡
步驟 2:舞台倒數計時時間每秒減 1
步驟 3:寫瞄準器跟著滑鼠、按下變紅
步驟 4:做鬼魂分身每秒多一隻鬼
步驟 5:寫打中加分鬼消失、分數加 1
步驟 6:寫遊戲結束字卡顯示、角色隱藏
步驟 7:存檔繳交作品交到 Classroom

學習目標

  • 分身:用「建立 自己 的分身」「當分身產生」「分身刪除」,只寫一隻鬼的程式就有很多隻鬼
  • 滑鼠:用「定位到 鼠標 位置」讓瞄準器跟著滑鼠;用〈碰到 鼠標?〉且〈滑鼠鍵被按下?〉判斷有沒有打中
  • 倒數計時:用變數「時間」加上「等待 1 秒」每秒減 1
  • 複習廣播:舞台當裁判,喊「開始」「過關」「時間到」管整個遊戲

遊戲規則

  • 按綠旗:分數歸零、時間從 30 開始倒數,鬼魂每秒多冒出一隻,在沙漠裡亂飄。
  • 瞄準器跟著滑鼠走,按下滑鼠會變紅色;按下去時瞄準器碰到鬼,那隻鬼就消失、分數加 1。
  • 過關:時間還沒到就打到 10 隻 → 跳出「過關!」。
  • 結束:倒數到 0 還不到 10 隻 → 跳出「時間到!」。
  • 不管哪一種結束,鬼魂和瞄準器都會藏起來、不再冒新的鬼。
誰做什麼
舞台(裁判)分數、時間歸零 → 喊「開始」→ 每秒時間減 1 → 最後判斷喊「過關」或「時間到」
鬼魂(本尊)藏起來,收到「開始」後每秒生一個分身
鬼魂(分身)出現在隨機位置亂飄;被打中就加分、刪掉自己
瞄準器一直跟著滑鼠,按下變紅
字卡收到「過關」或「時間到」就顯示那一張

步驟 1:準備角色和背景

角色區:鬼魂、瞄準器、字卡三個角色
  1. 打開線上版 Scratch,點「建立」開新專案,小貓用不到可以刪掉。
  2. 點「選個背景」選 Desert(沙漠)。
  3. 點「選個角色」選 Ghost,名字改成「鬼魂」,尺寸改成 55。
  4. 瞄準器:用這頁最上面下載的「瞄準器.sprite3」——滑鼠移到「選個角色」→「上傳角色」。它已經有兩個造型「黑」和「紅」(點上面的「造型」分頁可以看到)。
  5. 字卡:同樣「上傳角色」選「字卡.sprite3」。它有兩個造型「過關」「時間到」。

想自己畫也可以:瞄準器用「繪畫」畫一個圈加十字(外框粗一點),在造型分頁按右鍵「複製」一個造型塗成紅色,兩個造型名字改成「黑」「紅」;字卡用「T 文字」工具打「過關!」,再複製一個改成「時間到!」,造型名字叫「過關」「時間到」。

瞄準器的造型分頁:黑、紅兩個造型,左邊是畫圖工具

💡 為什麼瞄準器的線條要粗?角色在舞台上會縮小,線太細縮小後幾乎看不到,玩家就不知道自己瞄在哪。

💡 為什麼瞄準器要做兩個造型?按下滑鼠時換成紅色,玩家一看就知道「我有按到」。沒有這個回饋,玩家會以為程式壞了一直狂按。

💡 為什麼造型要取名「黑」「紅」?等一下程式要選「造型換成 紅」。名字看得懂,就不會選成預設的「造型1」「造型2」而搞混。

✅ 檢查點:瞄準器造型分頁有「黑」「紅」兩個造型。

步驟 2:舞台當裁判——倒數計時

先到變數類按「建立一個變數」,做兩個變數:分數、時間(都選「適用於所有角色」)。再點右邊的舞台,拼出這一段:

舞台的程式:歸零、廣播開始、每秒時間減 1、最後判斷過關或時間到
  1. 當綠旗被點擊 → 背景換成 Desert → 分數設為 0 → 時間設為 30 → 廣播「開始」。
  2. 重複直到〈時間 = 0〉或〈分數 > 9〉:等待 1 秒 → 時間改變 -1。
  3. 如果〈分數 > 9〉那麼 廣播「過關」,否則 廣播「時間到」。

這段會用到三則新的訊息:點「廣播訊息」的下拉選單 →「新的訊息」,分別建「開始」「過關」「時間到」。

💡 為什麼倒數是「等待 1 秒,再改變 -1」?Scratch 跑得非常快,沒有「等待 1 秒」的話,一眨眼就從 30 扣到 0。每圈先等 1 秒才扣 1,時間才會一秒一秒地倒數。

💡 為什麼條件要用「或」?遊戲有兩種結束方式:時間用完、或是已經打到 10 隻。任何一個成立就該停,所以用「或」把兩個條件接起來。只寫「時間 = 0」的話,打到 10 隻還是要乾等到 30 秒才過關。

💡 為什麼迴圈結束後還要「如果…否則」?迴圈停下來只知道「有一個條件成立了」,不知道是哪一個。再問一次「分數 > 9 嗎?」,是就喊過關、不是就一定是時間到。

💡 為什麼由舞台來當裁判?分數和時間是整個遊戲共用的,由舞台一個人判斷、一個人廣播,結果只會有一個。讓每隻鬼各自判斷,十隻鬼可能喊十次「過關」。

✅ 檢查點:按綠旗,分數是 0,時間從 30 每秒減 1。

步驟 3:瞄準器跟著滑鼠

點角色區的「瞄準器」:

瞄準器的程式:重複無限次定位到鼠標,按下滑鼠換紅色;收到過關、時間到就隱藏
  1. 當綠旗被點擊 → 顯示 → 圖層移到 最上 層 → 重複無限次〔定位到 鼠標 位置 → 如果〈滑鼠鍵被按下?〉那麼 造型換成 紅,否則 造型換成 黑〕。
  2. 當收到訊息「過關」→ 隱藏;當收到訊息「時間到」→ 隱藏。

💡 為什麼「定位到 鼠標」要放在「重複無限次」裡?定位只做一次,瞄準器只會跳到按綠旗那一瞬間的滑鼠位置就不動了。放進重複無限次,每一格畫面都重新跟上滑鼠。

💡 為什麼要「圖層移到 最上 層」?角色會一個疊一個。瞄準器在最上層,才不會被鬼魂擋住,玩家永遠看得到自己瞄在哪。

💡 為什麼用「如果…否則」,不是只寫「如果按下就換紅」?只寫一半的話,按一次就一直是紅色,放開也不會變回來。「否則」負責放開的時候換回黑色。

✅ 檢查點:瞄準器跟著滑鼠,按下變紅、放開變黑。

步驟 4:鬼魂分身——一隻程式、很多隻鬼

到控制類最下面找分身積木。點「鬼魂」,先拼前三段:

鬼魂的程式:綠旗隱藏、收到開始就一直生分身、分身出現後亂飄、被打中加分、收到結束訊息就隱藏停止
  1. 當綠旗被點擊 → 隱藏。
  2. 當收到訊息「開始」→ 重複直到〈時間 = 0〉或〈分數 > 9〉〔建立 自己 的分身 → 等待 1 秒〕。
  3. 當分身產生 → 定位到 x:隨機取數 -200 到 200、y:隨機取數 -130 到 130 → 面朝 隨機取數 -180 到 180 度 → 顯示 → 重複無限次〔移動 4 點 → 碰到邊緣就反彈〕。

⚠️ 注意:在角色資訊的「方向」轉盤把迴轉方式選成「左-右」,鬼魂反彈才不會倒過來。

💡 為什麼用分身,不複製十個角色?複製角色的話,改一個地方(例如速度)就要改十次,還容易漏。分身是程式跑的時候才變出來的,只要寫一份程式,每一隻分身都照著做。

💡 為什麼本尊要隱藏?本尊只負責「生分身」,不參加遊戲。它如果也顯示,會有一隻鬼站著不動、打了也不會消失。分身出生時會跟本尊一樣是隱藏的,所以「當分身產生」裡要自己「顯示」。

💡 為什麼生分身也要「重複直到」,不用「重複無限次」?遊戲結束後就不該再生新的鬼。條件和舞台一樣,時間到或打滿 10 隻就停手,畫面才不會在「時間到!」後面又冒出新的鬼。

💡 為什麼位置和方向要用隨機?每隻分身都從同一個點、往同一個方向出發,會疊成一隻,看起來只有一隻鬼。隨機讓每一隻出現在不同地方、往不同方向飄。

✅ 檢查點:按綠旗,分數 0、時間 30 開始倒數,鬼魂每秒多一隻在沙漠裡亂飄,瞄準器跟著滑鼠、按下會變紅。

步驟 5:打中鬼魂加分

在鬼魂身上再拼第四段(見上面鬼魂的程式第四段):

當分身產生 → 等待直到〈碰到 鼠標?〉且〈滑鼠鍵被按下?〉→ 變數 分數 改變 1 → 隱藏 → 播放音效 Pop 直到結束 → 分身刪除。

音效在鬼魂的「音效」分頁按「選個音效」加一個 Pop。

💡 為什麼要「且」?只碰到滑鼠,瞄準器滑過去就算打中,太簡單了;只按下滑鼠,按在哪都算。兩個條件同時成立(瞄準器在鬼身上+按下去)才算打中,所以用「且」。

💡 為什麼一樣是「當分身產生」,要再開一段?第三段是「一直飄」,它在重複無限次裡永遠不會結束。「等打中」要跟「飄」同時進行,放在另一段帽子積木底下,兩件事才能一起做。

💡 為什麼每個分身自己檢查有沒有被打中?每個分身都會跑一份自己的程式。打中哪一隻,就是那一隻自己加分、自己刪掉,其他隻不受影響。

💡 為什麼先「隱藏」再播音效,最後才「分身刪除」?分身一刪掉,它的程式就全部停了,音效也會跟著被切掉。先藏起來讓玩家覺得「打掉了」,等音效播完再刪。

💡 為什麼要「分身刪除」,不是隱藏就好?藏起來的分身還是存在,Scratch 最多只能同時有 300 個分身。打掉的鬼沒刪,玩久了會塞滿,新的鬼就生不出來。

✅ 檢查點:滑鼠碰到鬼並按下時,那隻鬼消失、分數加 1。

步驟 6:遊戲結束——字卡和停止

  1. 回到鬼魂,拼最後兩段:當收到訊息「過關」→ 隱藏 → 停止 這個物件的其它程式;「時間到」也一樣拼一段。
  2. 點「字卡」,拼出三段:當綠旗被點擊 → 隱藏;當收到訊息「過關」→ 造型換成 過關 → 圖層移到 最上 層 → 顯示;當收到訊息「時間到」→ 造型換成 時間到 → 圖層移到 最上 層 → 顯示。
字卡的程式:綠旗隱藏,收到過關或時間到就換成那張造型、移到最上層、顯示

💡 為什麼要「停止 這個物件的其它程式」?分身還在「重複無限次」地飄、還在「等待直到」被打中。只有隱藏的話,它們在看不見的地方繼續跑,時間到之後還可能被打中而加分。停掉才真的結束。

💡 為什麼選「這個物件的其它程式」,不選「全部」?「停止 全部」會讓整個專案當場停住,字卡可能還來不及顯示就被停掉了。只停鬼魂自己的其它程式,裁判和字卡還能把結局演完。

💡 為什麼字卡也要「圖層移到 最上 層」?鬼魂可能剛好飄在中間,字卡被擋住就看不到結果了。

✅ 檢查點:打到 10 隻會跳出「過關!」、鬼魂和瞄準器都消失;重新按綠旗一隻都不打,倒數到 0 會跳出「時間到!」,而且分數從 0 開始。

步驟 7:存檔繳交

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

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

💡 為什麼每堂都要下載?線上版 Scratch 沒登入時不會幫你存。關掉分頁作品就不見了,下載到電腦才留得住。

✅ 檢查點:作品已下載到電腦,並上傳到 Google Classroom。

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

狀況多半是
只有一隻鬼,或一隻都沒有「建立 自己 的分身」沒放進重複裡;或「當分身產生」少了「顯示」
有一隻鬼站著不動、打不掉本尊沒有在綠旗時「隱藏」,站著的那隻就是本尊
時間一下子就變 0倒數的迴圈裡少了「等待 1 秒」
時間變負數還在扣「重複直到」的條件寫錯,例如寫成「時間 < 0」或打錯變數
瞄準器不跟著滑鼠「定位到 鼠標 位置」沒有放在重複無限次裡
滑過鬼就加分條件少了「且〈滑鼠鍵被按下?〉」
按一下加好幾分打中後少了「分身刪除」,同一隻一直被算
時間到了鬼還在飄鬼魂收到「時間到」少了「停止 這個物件的其它程式」
瞄準器被鬼擋住綠旗那段少了「圖層移到 最上 層」

換成你自己的(必做)

  • ☐ 換一個主題:鬼魂換成別的角色(蟲子、氣球、星星…),背景也換成配合的場景
  • ☐ 瞄準器換成你自己畫的(捕蟲網、手套、魔杖都可以),按下去要看得出變化
  • ☐ 至少改一條規則:過關門檻、倒數秒數、生鬼的速度、鬼飄的速度選一個改
  • ☐ 按一次綠旗,過關和時間到兩種結局都玩得到

挑戰(做完的人選一題)

  • ★ 讓鬼魂一邊飄一邊換造型(Ghost 有 4 個造型),看起來像在動。
  • ★ 打中時播放你自己選的音效,過關時播一段音樂。
  • ★★ 加一種「炸彈鬼」分身:打到它扣 2 分(提示:再做一個角色,或讓分身用隨機換造型、打中時用「如果 造型編號 = …」判斷)。
  • ★★ 分身出現 3 秒沒被打到就自己消失(提示:在「當分身產生」再開一段:等待 3 秒 → 分身刪除)。
  • ★★★ 越打越難:分數每多 1 分,鬼魂飄得越快(提示:「移動 4 點」改成「移動(4 + 分數 ÷ 2)點」)。

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

  • ☐ 時間會一秒一秒倒數嗎?倒數到 0 會停嗎?
  • ☐ 打到鬼魂,分數會增加嗎?同一隻會不會被算兩次?
  • ☐ 遊戲結束時,鬼魂和瞄準器都會藏起來嗎?
  • ☐ 第二次按綠旗,分數會歸零、鬼魂會重新出現嗎?
  • ☐ 有沒有音效?
  • ☐ 說得出:是誰廣播了「時間到」,又是誰收到了?為什麼只寫一份鬼魂程式就有很多隻鬼?