# Scratch打地鼠遊戲:地鼠角色程式開發教學指引(Whack A Mole Game) <iframe src="https://scratch.mit.edu/projects/1258401320/embed" allowtransparency="true" width="485" height="402" frameborder="0" scrolling="no" allowfullscreen></iframe> :::success ## 專案目標:學會使用「分身控制」、「變數運用」與「隨機數」,讓地鼠動起來並能正確給分! ### 適合對象:Scratch 初學者(國中資訊科技課) ::: ## 🛠️ 先前準備:老師已經幫你做好了什麼? :::info 在開始之前,老師已經幫大家架構好遊戲的「骨幹」,你可以先檢查一下: * <font color="#E04324">計時器</font>:畫面右上方有 30 秒的倒數。 * <font color="#E04324">結束機制</font>:時間到(0秒)或 分數到(150分)遊戲會自動停止。 * <font color="#E04324">視覺特效</font>:獲勝時會出現 "YOU WIN",失敗時出現 "GAME OVER"。 * <font color="#E04324">片頭片尾</font>:起始畫面會出現 3秒倒數以進入遊戲,遊戲結束會出現素材聲明。 ::: ## 🤖 遊戲角色: * 地鼠 * 鎚子 * 倒數計時 * text(You Win/Game Over) * cover(片頭與片尾) * 舞台 --- ## 開啟Scratch程式 ### 老師傳送的whackamole4students.sb3程式 >[!Tip] >從<font color="#1936C9">"檔案"</font>--><font color="#1936C9">"從你的電腦挑選"</font>-->找到<font color="#1936C9">"whackamole4students.sbs"</font> > > ## 你今天的任務是:讓地鼠角色活過來! ### 🚀 任務一:地鼠的本能反應 (基礎互動) :::warning 當玩家拿槌子敲到地鼠時,地鼠應該要發出聲音並立刻躲起來。 ::: ### 📋 實作步驟: 1. 點擊 <font color="#1936C9">地鼠1</font> 角色。 2. 找到 <font color="#1936C9">當分身產生</font> 積木。 3. 加入 <font color="#1936C9">重複無限次</font> 與 <font color="#1936C9">如果...那麼</font> 判斷。 4. 設定條件:<font color="#1936C9">如果 <碰到 (滑鼠) 且 (滑鼠被按下)></font>。 1. 達成條件 <font color="#1936C9">播放音效hit</font> 並更換 <font color="#1936C9">造型成地鼠4</font> (地鼠被打到的表情) 1. <font color="#1936C9">廣播訊息messeage1</font> 以啟動其他積木 1. 地鼠 <font color="#1936C9">等待0.3秒</font> 後 <font color="#1936C9">隱藏</font> ,並 <font color="#1936C9">造型換成地鼠1</font> >[!Tip] ><font color="#1936C9"><(滑鼠被按下)> 且 碰到 (滑鼠)></font> 的組合,需使用<font color="#24E050">"運算"積木</font> 的 <font color="#24E050">< A 且 B ></font> 加上 <font color="#24CDE0"> "偵測"積木</font> 的 <font color="#24CDE0"><滑鼠鍵被按下?> </font>與 <font color="#24CDE0"><碰到...?></font> 🧩 積木參考位置:  --- ### ⏱️ 任務二:地鼠的躲貓貓 (節奏控制) :::warning 地鼠不能一直待在洞口。它必須<font color="#1936C9">「隱藏」</font>一段時間,再<font color="#1936C9">「出現」</font>一段時間。 ::: ### 📋 實作步驟: 1. 在 <font color="#1936C9">當作為分身產生時</font> 建立另一個平行的腳本。 2. 加入 <font color="#1936C9">重複無限次</font>。 3. 讓地鼠隱藏,並使用 <font color="#1936C9">隨機取數 1 到 3 秒</font> 讓地鼠隨機鑽出。 4. 顯示後,加入 <font color="#1936C9">每等待 0.5 秒</font>,變換1次造型,在畫面上在停留2秒 (這是地鼠露臉的時間)。 5. 最後再次 <font color="#1936C9">隱藏</font> 並將 <font color="#1936C9">尺寸設為0%</font> ,避免隱藏時仍能被點擊到。 🧩 積木參考位置:  --- ### 💰 任務三:會給分的慷慨地鼠 (變數運用) :::warning 打到地鼠如果沒加分,這就不是好玩的遊戲!我們要讓<font color="#1936C9">變數 Hits與變數Score 動起來</font>。 ::: >[!Note] >什麼是變數? >變數就像一個「貼有標籤的儲存盒」,幫程式記住重要的資訊。 >**1.標籤(名稱)是固定的:方便我們隨時呼叫它。** >**2.內容(數值)像白板字:可以隨時被擦掉、換成新的。** >不論是分數、血量或時間,只要資料會變動且需要被記住,就必須使用變數來方便程式重複取用!  ### 📋 實作步驟: 1. 在「任務一」的程式中,當判定被擊中時,啟動變數Hits與Score的改變。 1. 點選舞台的程式:<font color="#1936C9">當收到廣播訊息message1</font> 1. 加入 <font color="#1936C9">變數 [Hits] 改變 1</font>。 1. 加入 <font color="#1936C9">變數 [Score] 改變 5</font>。 1. 加入判斷式<font color="#1936C9">如果...那麼</font> 判斷分數是否達標(Score=150) 1. 如果達標,加入<font color="#1936C9">廣播訊息"youwin"</font> >[!Important] >變數積木不要放錯囉! 此處為"**變數**<font color="E04324">**改變為...**</font>",而非"**變數**<font color="E04324">**設為...**</font>" 🧩 積木參考位置:  :::info :bulb: 要用變數來製作「遊戲得分」非常簡單,我們只需要掌握**「歸零」與「累加」**這兩個關鍵動作: 製作得分功能的四個步驟: * <font color="#CF4434">**建立儲存盒:**</font> 在 Scratch 的「變數」積木區點選「建立一個變數」,命名為「得分」。這時畫面上就會出現一個分數表。 * <font color="#CF4434">**遊戲開始先歸零(設定初始值):** </font>在「當綠旗被點擊」下面,放上 變數 [得分] 設為 [0]。這樣每次重新玩,分數才會從 0 開始,不會累積舊的分數。 * <font color="#CF4434">**達成目標就加分(改變數值):** </font>在你的遊戲邏輯裡(例如:碰到金幣、擊中敵人),加上 變數 [得分] 改變 [1]。這代表盒子裡的數字會加 1。 * <font color="#CF4434">**持續判斷:**</font> 通常會配合「如果...那麼」與「重複無限次」積木,讓電腦一直偵測角色是否該加分了。 ::: --- ### 🧪 遊戲測試與除錯 (Debug) :::danger 完成後,請按下綠旗測試遊戲,並檢查以下重點: ::: | 檢查項目 | 狀況確認 | | -------- | -------- | | 擊中音效 | 打到地鼠時有沒有「地鼠叫聲」? | | 次數累加 | (Hits)每次打到,分數是否有正確加 1 次? | 分數累加 | (Score)每次打到,分數是否有正確加 5 分? | | 時間節奏 | 地鼠出現的速度會不會太快或太慢? | | 清理現場 | 遊戲結束後,地鼠有沒有乖乖消失? | >[!Tip] >#### 小撇步:如果你發現分數一次跳很多分,可能是因為地鼠被打到後<font color="#1936C9">「隱藏」</font>得不夠快,可以試著把 <font color="#1936C9">等待2秒</font> 的時間縮短喔! ### 🏆 進階挑戰 :::warning 如果你已經完成了以上任務,可以試著挑戰: * 閃金光的地鼠:建立一個<font color="#1936C9">新的訊息廣播</font>,讓少部分的地鼠可以加 20 分! * 地鼠的反擊:如果地鼠出現太久沒被打到,反而會扣玩家的分數。 ::: --- ## 🎮各角色程式積木參考 ### 🧩舞台  --- ### 🧩cover(片頭片尾))  --- ### 🧩text(You win/Game over)  --- ### 🧩countdown(片頭倒數計時))  --- ### 🧩hammer(鎚子)  --- ### 🧩mole(地鼠)  --- >[!Note] >版權聲明: >遊戲設計:©[CLIT Classroom](https://clitclassroom.github.io/) >音效及音樂:[Pixabay](https://pixabay.com/) >圖片生成: Google Gemini
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.