SCRATCH 完整作品解答 · 更新至第八堂

猴子接香蕉從介紹頁開始,四個部分一次看懂!

綠旗先看介紹,點開始按鈕才開玩。
對照最新積木:猴子、香蕉、開始按鈕與舞台。

開始對照解答
你好棒,你得了 25主角:猴子

第八堂後的完整作品流程

⚑ 綠旗:介紹背景、按鈕顯示、角色隱藏、資料重設。
▶ 點按鈕:廣播「開始遊戲」,猴子與香蕉顯示,舞台換成 Desert 並開始倒數。
⏱ 時間到:舞台廣播「遊戲結束啦」,角色停止,猴子報分。

依老師最新積木:接到 +100 分、漏接 -50 分、倒數 8 秒。圖片介紹文字寫 10 秒,請把介紹改成 8 秒;若要玩 10 秒,請把計時器初始值與重複次數都改成 10。

原圖的主角目前是 Sprite1,外觀是貓咪;這裡沿用課程名稱「猴子」,更換造型不影響程式邏輯。

猴子:綠旗先隱藏,等待玩家開始

綠旗只準備介紹頁,不要在這時啟動追蹤滑鼠。

當 ⚑ 被點擊
隱藏
「隱藏」不會停止程式,真正的移動迴圈要改接到「當收到訊息 開始遊戲」下方。
01
按一下,走一步

用鍵盤左右操控

在猴子身上放兩串獨立程式。右鍵讓 x 增加,左鍵讓 x 減少;每次移動都換下一個造型。

往右走 →

當 向右 ▾ 鍵被按下
x 改變 10
造型換成下一個

x 變大 → 猴子往右移動 10。

往左走 ←

當 向左 ▾ 鍵被按下
x 改變 -10
造型換成下一個

x 變小 → 猴子往左移動 10。

💡 移動時只改 x,猴子就會左右走;「造型換成下一個」讓牠看起來正在動。
02
滑鼠到哪裡,猴子就跟到哪裡

用滑鼠操控

當收到訊息 開始遊戲 ▾
定位到 x: 21 y: -129
顯示
重複無限次
x 設為 鼠標的 x
↶
  1. 先回到起點

    收到按鈕的「開始遊戲」訊息後,猴子先定位到(21, -129),顯示並待在舞台下方。

  2. 一直讀取滑鼠的位置

    到「偵測」找「鼠標的 x」,放進「x 設為」裡,再包進「重複無限次」。

  3. 只跟著左右移動

    滑鼠往左,猴子往左;滑鼠往右,猴子往右。y 沒有改變,所以不會跟著上下跑。

03
收到訊息 → 說出分數 → 停止移動

時間到了,公布成績!

另外新增一串「當收到訊息」程式。等倒數程式廣播結束訊息,猴子就會執行下面的積木。

當收到訊息 遊戲結束啦 ▾
說出 字串組合 你好棒,你得了 得分
停止 這個物件的其它程式 ▾

① 把文字和得分接起來

在「運算」找「字串組合」,左邊填入「你好棒,你得了」,右邊放入橘色的「得分」變數,再放進「說出」。如果得分是 25,就顯示「你好棒,你得了25」。

② 停下猴子的其他程式

在「控制」的「停止」下拉選單中,選「這個物件的其它程式」,讓猴子正在執行的滑鼠追蹤迴圈停下來。

訊息名稱要一模一樣。 本頁依最新圖片使用「遊戲結束啦」,舞台、猴子與香蕉都要選同一個名稱。「開始遊戲」是另一個訊息,不要混用。
「說出」是對話泡泡。 這串程式只會停止猴子身上正在執行的其他程式,香蕉與舞台要另外處理。鍵盤事件之後仍可能再次觸發;鍵盤版若要結束後完全鎖住操作,可再加「遊戲進行中」的判斷。
✓
回到 Scratch,親手試試看

我的猴子完成了嗎?

卡住了?打開除錯小提示
  • 按方向鍵卻跳回原位:檢查滑鼠控制迴圈是否還在執行。
  • 滑鼠移動,猴子卻不動:檢查是否使用「x 設為」,並放在「重複無限次」裡。
  • 沒有說出分數:檢查廣播名稱,並確認積木放在猴子角色身上。
  • 泡泡只有文字沒有數字:右邊要放「得分」變數積木,不能只打「得分」兩個字。

老師的原始積木圖

對照綠旗隱藏、開始廣播後移動、結束報分,以及左右鍵事件。點圖片可開啟原圖放大查看。

猴子最新程式:綠旗隱藏,收到開始遊戲後定位、顯示並追蹤滑鼠;收到遊戲結束啦時報分並停止其他程式,另有左右鍵控制。
角色 02 · 香蕉篇

香蕉雨,從這串程式開始!

先選取香蕉角色,再放入綠旗準備、開始掉落、結束停止三串程式。

香蕉從上方隨機出現,一直往下掉。漏接扣 50 分,碰到猴子加 100 分;每次判斷完成,都回到上方重新掉落。

04
綠旗先隱藏與清零 → 收到開始訊息才掉落

香蕉的完整掉落程式

綠旗:先隱藏、得分歸零

當 ⚑ 被點擊
隱藏
變數 得分 ▾ 設為 0

原本的掉落程式改接在「當收到訊息 開始遊戲」下方。照順序接好積木。兩個「如果」都放在「重複無限次」裡面,這樣每次下降後都會檢查有沒有漏接、或碰到猴子。

當收到訊息 開始遊戲 ▾
顯示
定位到 x: 隨機取數 200 到 -200 y: 157
重複無限次
y 改變 -10
如果 y 座標 < -190 那麼
變數 得分 ▾ 改變 -50
定位到 x: 隨機取數 200 到 -200 y: 157
如果 碰到 Sprite1 ▾? 那麼
變數 得分 ▾ 改變 100
定位到 x: 隨機取數 200 到 -200 y: 157
↶
Sprite1 是圖片中的猴子角色名稱。 如果你的猴子改名成「猴子」,就要在「碰到」下拉選單選「猴子」,不要選到舞台、滑鼠或其他角色。
05
把長長的程式,拆成四件事

每一段在做什麼?

  1. 綠旗先歸零,開始訊息才讓香蕉回到上方

    「得分設為 0」只放在迴圈外,按綠旗時執行一次,並隱藏香蕉;收到「開始遊戲」才顯示香蕉,把 y 設為 157,x 從 -200 到 200 之間隨機挑一個數,讓香蕉每次出現的位置不一樣。

  2. 一直下降:y 每次改變 -10

    y 變小,香蕉就往下走。放進「重複無限次」,就會持續掉落。想調整速度,可以試試 -5 或 -15,再觀察差異。

  3. 漏接:y 座標小於 -190,扣 50 分

    香蕉掉到設定的下方界線時,「得分改變 -50」,再回到隨機 x、y = 157。回到上方後就不再符合漏接條件,避免同一根香蕉一直扣分。

  4. 接到:碰到猴子,加 100 分

    偵測到碰到猴子時,「得分改變 100」,再回到隨機 x、y = 157,開始下一次掉落。立刻移回上方,也能避免持續碰著猴子而重複加分。

🍌 接到了

原本 0 分 → 加 100 → 現在 100 分
香蕉回上方,換個位置再掉下來。

⬇ 漏接了

原本 0 分 → 扣 50 → 現在 -50 分
這份程式可以出現負分。

對照圖片的小提醒: 原圖的隨機範圍寫「200 到 -200」,表示在這兩個端點之間取數;也可以改成較好閱讀的「-200 到 200」。三個「定位到」都要使用相同的範圍與 y = 157。
06
另外一串程式,等待結束廣播

時間到,香蕉也要停下來

當收到訊息 遊戲結束啦 ▾
停止 這個物件的其它程式 ▾

香蕉收到訊息,就會停止自己正在執行的掉落迴圈,加分與扣分的判斷也會一起停止。這串不用接在綠旗程式下面。

三個地方用同一個訊息名稱: 倒數程式的廣播、猴子的接收、香蕉的接收。本頁與最新圖片統一使用「遊戲結束啦」,不要和開始訊息「開始遊戲」混用。
✓
先試一根香蕉,再測整場遊戲

我的香蕉完成了嗎?

香蕉不聽話?打開除錯小提示
  • 香蕉越掉越高:確認是「y 改變 -10」,有負號才會往下。
  • 分數一直變回 0:「得分設為 0」要在「重複無限次」外面。
  • 碰到猴子不加分:確認「碰到」選的是猴子的實際角色名稱。
  • 一直加分或一直扣分:檢查兩個「如果」裡都有「定位到」,把香蕉送回 y = 157。
  • 香蕉到下方卻不重來:確認比較的是「y 座標 < -190」,並檢查香蕉大小、造型中心是否讓它無法到達這條界線。
  • 時間到了還在掉:檢查訊息名稱,並確認這串停止程式放在香蕉角色身上。

香蕉角色的原始積木圖

左邊是綠旗隱藏與歸零,中間是收到開始訊息後掉落與計分,右邊是結束後停止。點圖片可放大對照。

香蕉最新程式:綠旗隱藏、得分設為 0;收到開始遊戲後顯示並掉落,漏接扣 50、碰到 Sprite1 加 100;收到遊戲結束啦後停止。
開始按鈕篇 · 第八堂新增

按下按鈕,才正式開始遊戲

選取開始按鈕角色;圖片中的名稱是 Button2。

綠旗先把按鈕顯示在介紹頁上。玩家點它時,先廣播「開始遊戲」,再隱藏按鈕,避免遊戲中重複點擊。

綠旗:顯示按鈕

當 ⚑ 被點擊
顯示

點擊:廣播後隱藏

當角色被點擊
廣播訊息 開始遊戲 ▾
隱藏
使用一般「廣播訊息」。 不要改成「廣播並等待」,否則可能一直等著角色的無限迴圈結束,無法執行按鈕的隱藏。重新按綠旗時,按鈕會再顯示。

開始按鈕的最新原始積木圖

綠旗顯示;點擊後廣播「開始遊戲」並隱藏。點圖可放大。

Button2 的兩串程式:綠旗顯示;當角色被點擊,廣播開始遊戲後隱藏。
舞台篇 · 介紹背景與計時員

綠旗顯示介紹,開始廣播才倒數

點選舞台,準備「遊戲介紹」與 Desert 兩個背景。

舞台有兩串程式:綠旗只準備介紹頁與計時器;收到按鈕的「開始遊戲」訊息後,才切換場景並開始倒數。

07
兩串事件,分開準備與開玩

舞台的完整程式

綠旗:切回介紹,重設計時器

當 ⚑ 被點擊
背景換成 遊戲介紹 ▾ 並等待
變數 計時器 ▾ 設為 8

此時不會倒數,玩家可以先讀規則。按鈕顯示,猴子與香蕉隱藏。舞台透過切換背景來顯示介紹,不能使用角色的「隱藏」。

收到開始訊息:切換場景,倒數後廣播結束

當收到訊息 開始遊戲 ▾
背景換成 Desert ▾
重複 8 次
等待 1 秒
變數 計時器 ▾ 改變 -1
↶
廣播訊息 遊戲結束啦 ▾
  1. 綠旗只準備:換背景、計時器設為 8。

    重開遊戲時資料會還原,但不會在介紹頁提早扣時間。

  2. 收到「開始遊戲」,換成 Desert。

    開始按鈕、舞台、猴子與香蕉使用完全相同的開始訊息。

  3. 每秒減 1,重複 8 次後廣播結束。

    「等待」與「改變 -1」放迴圈內,結束廣播放外面、下方。

876543210
介紹寫 10 秒,程式寫 8 秒? 最新圖片仍有這個差異。本解答忠實對照 8 秒積木;請把介紹文字改為 8 秒,或把「設為 8」和「重複 8 次」都改成 10,讓規則與實際時間一致。
08
開始與結束,是兩個不同的通知

四個部分,如何一起完成遊戲?

▶ 按鈕 → 大家

開始遊戲

按鈕隱藏,舞台換場景開始倒數,猴子與香蕉顯示並啟動原本程式。

對照開始按鈕 ↗
🎬 舞台 → 猴子

遊戲結束啦

猴子說出文字與目前得分,停止正在執行的滑鼠追蹤。

對照猴子結束程式 ↗
🎬 舞台 → 香蕉

遊戲結束啦

香蕉停止掉落迴圈,也不再進行加分與扣分判斷。

對照香蕉結束程式 ↗
本頁統一使用圖片中的名稱: 開始用「開始遊戲」;結束用「遊戲結束啦」。前幾堂的 game over、時間結束啦 若仍在作品裡,請把發送端與接收端一起改成相同名稱。廣播只負責通知,不會自動停止所有角色。
✓
從介紹頁玩到結束,再重來一次

完整作品檢查

完整作品卡住了?檢查這些地方
  • 介紹頁就倒數:倒數應搬到「當收到訊息 開始遊戲」下面。
  • 隱藏卻仍掉落:隱藏不會停止程式,確認沒有留下舊綠旗掉落迴圈。
  • 開始後角色沒出現:角色接收程式要有「顯示」。
  • 按鈕不隱藏:使用一般「廣播訊息」,不要等角色的無限迴圈結束。
  • 時間到還在動:檢查結束訊息名稱。鍵盤事件要額外用「遊戲進行中」判斷,才不會再次觸發。
  • 新一場還有泡泡:可在猴子綠旗程式加空白「說出」,清掉上一場結果。

舞台的最新原始積木圖

左邊:綠旗介紹與重設;右邊:開始訊息啟動倒數,最後廣播「遊戲結束啦」。點圖可放大。

舞台最新程式:綠旗切換遊戲介紹並將計時器設為 8;收到開始遊戲後切換 Desert,重複 8 次等待一秒並減一,最後廣播遊戲結束啦。