廣播,是送給大家的通知
學校廣播說「下課了」,同學聽到後會收拾文具。Scratch 也能發通知:舞台說「遊戲結束」,香蕉和猴子收到後,各自執行自己的程式。
發送:我來通知大家
在黃色「事件」分類找「廣播訊息」,新增一個訊息,命名為 遊戲結束啦。訊息名稱用來約定「這個通知代表什麼」。
接收:聽到後做自己的事
在角色身上放「當收到訊息」,選同一個 遊戲結束啦。下面接的積木,就是這個角色收到通知後要做的事。
先想想:香蕉也要說出分數嗎?
不用。兩個角色收到相同訊息,但各自接不同的積木。只有猴子的接收程式需要「說出」。
試試看:一個通知,兩個反應
廣播示意 · 這是教學演示,不會改動你的 Scratch 作品,示範得分固定為 300。
等待綠旗
等待綠旗
先按綠旗開始,再觀察倒數結束時會發生什麼事。
倒數結束,由舞台廣播
點選 Scratch 右下角的「舞台」。建立橘色變數「計時器」,並讓它顯示在舞台上。本課依最新積木使用 8 秒倒數,計時器歸零後才廣播。如果作品介紹寫 10 秒,請同步修正介紹,或把起始值與重複次數一起改為 10。
- 綠旗開始,把計時器設為 8。
讓每一場遊戲都重新開始倒數。
- 重複 8 次:等待 1 秒,計時器改變 -1。
兩塊都要放進重複積木裡,才會一秒減一。
- 迴圈結束後,廣播 遊戲結束啦。
廣播放在重複積木外面、下方,才不會第一秒就結束遊戲。
收到廣播後,各自完成任務
香蕉:停止掉落
在香蕉身上另外放一串「當收到訊息 遊戲結束啦」,下面接「停止」,下拉選單選「這個物件的其它程式」。這樣就會停止香蕉原本正在執行的掉落與計分迴圈。
猴子:先停下來,再公布成績
在猴子身上另外放一串接收程式。先停止原本正在執行的移動程式,再用「說出」顯示「你好棒!你獲得了(得分)分數」。括號的位置要放入真正的「得分」變數。
為什麼用兩個「字串組合」?
一個只能接兩段內容。先把「得分」和「分數」接起來,再接上開頭「你好棒!你獲得了」。例如得分是 300,就會顯示「你好棒!你獲得了300分數」。括號是填入變數的位置,不必另外打入。
停止其他程式,這串還能繼續
選「這個物件的其它程式」會停掉猴子正在跑的其他程式,保留目前這串接收程式,所以接下來仍能「說出」。不要選「停止全部」或「停止這個程式」。
原本用鍵盤操控猴子,要注意什麼?
停止其他程式可以停止正在跑的滑鼠追蹤迴圈,但結束後再按方向鍵,按鍵事件仍可能重新觸發。鍵盤版可加一個共用變數「遊戲進行中」:綠旗設為 1;收到 遊戲結束啦 時先設為 0;方向鍵移動積木外加上「如果 遊戲進行中 = 1」。這樣遊戲結束後,按鍵也不會再移動。
我的廣播任務完成了嗎?
沒有成功?用這張表找原因
| 看到的狀況 | 檢查這裡 |
|---|---|
| 一秒就結束 | 廣播應該在重複 8 次的外面。 |
| 倒數瞬間歸零 | 迴圈裡要有「等待 1 秒」。 |
| 時間到,香蕉還在掉 | 香蕉要有接收程式,且訊息名稱相同。 |
| 猴子沒說話 | 停止選「這個物件的其它程式」,不要停止全部或目前這串。 |
| 泡泡只有「得分」兩個字 | 放入橘色「得分」變數,不是手打「得分」。 |
| 想在 30 秒才結束 | 「設為 8」與「重複 8 次」都改成 30。 |
老師的最新作品圖:聚焦結束廣播
圖片是包含第八堂起始頁的完整作品;本課先看舞台最後的廣播,以及猴子、香蕉的結束接收程式。「開始遊戲」與按鈕的安排,留到第八堂再學。
原圖的猴子先說出文字再停止,而且沒有句尾「分數」。本課依任務要求調整成「先停止、再報分」,並用兩個字串組合補齊完整句子;請以本課上方的猴子積木為準。



