Scratch 打字練習遊戲教學:用鍵盤事件做出好玩的英文打字遊戲
你的孩子喜歡玩電腦遊戲嗎?那不如讓他自己做一個!今天我們要用 Scratch 做一個超好玩的英文字母打字遊戲——字母會從天上掉下來,你要在它掉到底部之前按下正確的按鍵把它消滅掉。
這個專案會用到 Scratch 的鍵盤事件偵測功能,是學習「事件驅動程式設計」的最佳入門專案。適合已經會基本 Scratch 操作(知道怎麼拖積木)的小朋友。
遊戲規則設計
先想清楚我們的遊戲要怎麼玩:
- 畫面上方會隨機出現英文字母(A-Z)
- 字母會慢慢往下掉
- 玩家要在字母掉到底部之前,按下對應的鍵盤按鍵
- 按對了:字母消失,得 10 分
- 字母掉到底部:扣一條命(共 3 條命)
- 命用完就 Game Over
是不是很簡單?但裡面包含了好多程式設計的重要觀念:隨機數、克隆(Clone)、事件偵測、變數、條件判斷。
Step 1:建立角色和背景
首先,我們需要一個「字母」角色。你可以:
- 用 Scratch 內建的字母角色
- 或自己畫 26 個字母的造型(造型名稱就用字母本身:a, b, c...z)
背景就用深色的太空背景,這樣白色的字母比較容易看到。
再建立幾個變數:
- 分數:初始值 0
- 生命:初始值 3
- 速度:字母下落的速度,可以隨分數增加
Step 2:讓字母從天上掉下來
這裡要用到 Scratch 的克隆(Clone)功能。主角色負責每隔一段時間產生克隆體,每個克隆體就是一個掉落的字母:
當 [綠旗] 被點擊
將 [分數] 設為 [0]
將 [生命] 設為 [3]
將 [速度] 設為 [2]
隱藏
重複無限次
建立 [自己] 的分身
等待 (隨機取數 1.5 到 3) 秒
結束每個克隆體出現時,要隨機選一個字母造型、隨機出現在畫面上方的某個 x 位置:
當分身產生
顯示
造型換成 (字母清單 的第 (隨機取數 1 到 26) 項)
定位到 x:(隨機取數 -200 到 200) y:(170)
重複直到 <(y 座標) < (-170)> 或 <(生命) = [0]>
y 改變 ((-1) * (速度))
結束
如果 <(y 座標) < (-170)> 那麼
將 [生命] 改變 [-1]
結束
刪除這個分身Step 3:鍵盤事件偵測(重頭戲!)
這是整個遊戲最核心的部分。我們要偵測玩家按下了哪個鍵,然後檢查畫面上是否有對應的字母。
在 Scratch 裡,我們可以用「當按下 [某鍵]」事件積木。但 26 個字母就要 26 個事件?太麻煩了!
更好的做法是用偵測積木搭配廣播:
當分身產生
...(前面的程式)
重複直到 <字母掉到底部>
如果 <按下 [我的造型名稱] 鍵?> 那麼
將 [分數] 改變 [10]
播放音效 [Pop]
刪除這個分身
結束
y 改變 ((-1) * (速度))
結束關鍵在 <按下 [我的造型名稱] 鍵?> 這個積木——因為我們的造型名稱就是字母本身(a, b, c...),所以它會自動偵測對應的按鍵!
如果你之前做過 Scratch 接球遊戲的話,應該對座標和碰撞偵測已經不陌生了。
Step 4:難度遞增
隨著分數增加,遊戲要越來越難。每得到 50 分,字母掉落速度加快一點:
當 [綠旗] 被點擊
重複無限次
將 [速度] 設為 ((2) + ((分數) / (50)))
等待 (0.5) 秒
結束你也可以加入其他難度機制:
- 字母出現的間隔越來越短
- 同時出現多個字母
- 加入特殊字母(大寫?數字?)
Step 5:Game Over 畫面
當生命歸零時,顯示 Game Over 和最終分數:
當 [綠旗] 被點擊
重複直到 <(生命) = [0]>
等待 (0.1) 秒
結束
停止 [其他角色的程式]
廣播訊息 [遊戲結束]
說出 (字串組合 [Game Over! 你的分數是 ] (分數)) (999) 秒進階挑戰:讓遊戲更好玩
基本版做完了?來試試這些進階功能:
1. 連擊加分
連續打對字母可以獲得額外加分。用一個「連擊數」變數來追蹤。
2. 特殊道具
隨機出現特殊字母(比如金色的),打到可以加命或讓時間暫停。
3. 排行榜
用 Scratch 的雲端變數功能,讓全世界的玩家可以比較分數。之前 Scratch 雲端變數教學有詳細介紹過。
4. 音效與動畫
加入按對和按錯的不同音效,字母消失時加個小動畫(放大+淡出),整個遊戲體驗會好很多。如果你對動畫有興趣,Scratch 動畫教學有教基本的動畫技巧。
這個專案學到了什麼?
回顧一下,做這個遊戲你學會了:
- 鍵盤事件偵測:程式如何知道你按了什麼鍵
- 克隆(Clone):一個角色產生多個分身
- 隨機數:讓每次遊戲都不一樣
- 變數:追蹤分數、生命等遊戲狀態
- 條件判斷:按對/按錯的不同處理
這些觀念在真正的程式語言(Python、JavaScript)裡也完全一樣,只是語法不同。如果你覺得 Scratch 已經不夠用了,Scratch 轉 Python 學習路線是很好的下一步。
結語
打字遊戲看起來簡單,但做起來真的可以學到很多。最棒的是,完成之後你可以跟朋友分享,看誰的分數比較高!
記住,程式設計最重要的不是「寫得很厲害」,而是「做出好玩的東西」。先讓遊戲能跑起來,再慢慢加功能。Have fun!
繼續閱讀
Scratch 物理模擬遊戲教學:用積木做出重力、彈跳和碰撞偵測
相關文章
你可能也喜歡
探索其他領域的精選好文