iT邦幫忙

2021 iThome 鐵人賽

0
自我挑戰組

Scratch 3 從入門到精通系列 第 43

Day43 ( 遊戲設計 ) 音階記憶遊戲

音階記憶遊戲

教學原文參考:音階記憶遊戲

這篇文章會介紹,使用 Scratch 3 裡的音樂擴充功能,搭配變數、清單、函式、邏輯判斷、廣播訊息、重複、尺寸、字串組合...等積木,實作一個有趣的 Do、Re、Mi、Fa、So 音階記憶遊戲。

相關文章參考:音樂擴充功能清單函式變數重複邏輯判斷廣播訊息尺寸字串組合

角色設定

在角色編輯區,使用繪畫,加入五個不同顏色「圓形」的新角色,五個圓形分別表示 Do、Re、Mi、Fa、So ( 參考:造型與繪圖 )。

Scratch 3 教學 - 音階記憶遊戲

將角色在舞台上排列成下圖的樣子。

Scratch 3 教學 - 音階記憶遊戲

積木程式原理 ( 貓咪 )

點擊「貓咪」角色,建立四個變數和三個清單:

  • 音階數:每一題要出現的音階數量。
  • 答對:紀錄答對題數 ( 勾選顯示在畫面上 )。
  • go:判斷下方圓形是否能點擊。
  • n:取得清單的項目。
  • 答案:記錄答案的清單。
  • 題目:題目的清單。
  • list:Do、Re、Mi、Fa、So 音階的清單。

Scratch 3 教學 - 音階記憶遊戲

點擊綠旗時,將音階數和 go 的變數都設為 0,並讓貓咪說出「點我,開始遊戲吧!」。

Scratch 3 教學 - 音階記憶遊戲

點擊角色時,判斷如果音階數等於 0,就廣播「開始」的訊息。

為什麼要使用邏輯判斷和廣播訊息?因為如果直接將程式放在點擊角色裡,會在重複點擊角色時,發生預期外的狀況,所以使用廣播訊息來避免例外狀況發生。

Scratch 3 教學 - 音階記憶遊戲

將 list 清單勾選顯示在舞台上,點選清單的「+」號,增加 60、62、64、65、67 五個項目,分別代表對應的音階,完成後再將清單取消勾選,在舞台上隱藏。

注意,這個步驟很容易被忽略。

Scratch 3 教學 - 音階記憶遊戲

建立一個「建立題目」的函式,建立音階題目:

  • 刪除題目和答案清單的所有項目 ( 清空清單內容 )
  • 使用「重複...次數」積木,重複「無條件捨去的音階數」。
  • 每次重複隨機讀取 list 清單的某個項目,將其放入題目清單裡
  • 讓貓咪說出「幾個音」的文字。

為什麼要使用「無條件捨去」,因為待會在作答之後,會將音階數增加 0.5,讓音階數量是 3、3、4、4、5、5...的規律,所以使用無條件捨去,如果希望是 3、4、5、6 的規律,就不需要使用無條件捨去

Scratch 3 教學 - 音階記憶遊戲

再建立一個「聽聲音」的函式,播放題目的音階,並加入音樂的擴充功能:

  • 設定變數 n 為 0,目的在於取出題目清單的項目。
  • 使用「重複...次數」積木,重複「無條件捨去的音階數」,每次重複執行:
    • 將 n 增加 1。
    • 廣播訊息「題目清單中對應的項目」
    • 演奏題目清單中對應的項目
  • 重複結束後,讓貓咪說出「有幾個音,請作答」的文字。
  • 將變數 go 設為 1,表示使用者可以開始回答。

Scratch 3 教學 - 音階記憶遊戲

編輯收到「開始」訊息時的程式:

  • 設定「答對」為 0。
  • 設定「音階數」為 3。
  • 讓貓咪每隔一秒講出 3、2、1。
  • 貓咪講完話之後,依序執行「建立題目」和「聽聲音」的函式

Scratch 3 教學 - 音階記憶遊戲

編輯收到「next」訊息時的程式 ( next 訊息會在「判斷答對」之後發出 ):

  • 將「答對」改變 1
  • 將「音階數」改變 0.5
  • 讓貓咪講出「答對囉!下一題」,持續兩秒。
  • 兩秒後,依序執行「建立題目」和「聽聲音」的函式

Scratch 3 教學 - 音階記憶遊戲

編輯收到「gameover」訊息時的程式 ( gameover 訊息會在「判斷答錯」之後發出 )

  • 將「音階數」設為 0
  • 讓貓咪說出「答錯囉!遊戲結束!」,持續兩秒。
  • 兩秒後,讓貓咪說出答對的題數,並提示使用者再次點擊可以繼續玩。

Scratch 3 教學 - 音階記憶遊戲

積木程式原理 ( 圓點 )

點擊「Do」的圓點角色,設定點擊綠旗時,尺寸設定為 100% ( 因為播放音階時會放大 )

Scratch 3 教學 - 音階記憶遊戲

設定當收到訊息「60」時,將尺寸變成 120%,等待 0.5 秒後再變回 100%。

收到訊息可以點擊下拉選單中「新的訊息」,增加 60 的新訊息,又因為 Do 的音階為 60,所以使用該數值作為判斷依據。

Scratch 3 教學 - 音階記憶遊戲

接著設定當角色被點擊的程式:

  • 判斷如果 go 等於 1,表示可以進行作答的行為。
  • 將尺寸變成 120%。
  • 將 60 添加到答案清單中 ( 因為 Do 的音階是 60 )。
  • 判斷如果答案的長度等於題目,表示作答完成 ( 注意一定要擺在這個位置 ),完成時執行:
    • 將 go 設為 0。
    • 判斷如果答案等於題目,表示答對,廣播 next 訊息
    • 判斷如果答案不等於題目,表示答錯,廣播 gameover 訊息
  • 演奏音階 60。
  • 將尺寸變成 100%。

Scratch 3 教學 - 音階記憶遊戲

最後將圓形 Do 的程式,複製到 Re、Mi、Fa 和 So 的角色裡。

  • 複製方法 1:可以使用鍵盤的 Ctrl + c 複製,再進入其他角色貼上。
  • 複製方法 2:直接用滑鼠拖拉的方式,將程式積木拖拉到其他角色上放開,就會自動複製過去。

Scratch 3 教學 - 音階記憶遊戲

以下圖的 Re 為例,總共有三個位置要改成 62,依此類推修改 Mi、Fa 和 So。

Scratch 3 教學 - 音階記憶遊戲

完成效果

完成後,點擊綠旗,就可以開始進行音階記憶的遊戲。

Scratch 3 教學 - 音階記憶遊戲

範例解答

範例解答:音階記憶遊戲

延伸練習

如果已經熟悉了音階記憶遊戲的原理,還可以嘗試更多好玩的作法:

  • 加入「雲端變數」,紀錄遊戲的最高分 ( 解答 )

關於我

大家好,我是 OXXO,是個即將邁入中年的斜槓青年,如果對我有點興趣(笑,可以與我聯繫,一起來做點有玩又有創意的東西吧!


上一篇
Day42 ( 遊戲設計 ) 九宮挌拼圖
下一篇
Day44 ( 遊戲設計 ) Flappy Bird
系列文
Scratch 3 從入門到精通46

尚未有邦友留言

立即登入留言