2018-04-10

以 LEGO Boost 與 Scratch 2 製作互動遊戲

LEGO Boost 除了使用行動裝置上官方所提供的 app 編寫程式外, 也可以在電腦上透過 S2Bot 以 Scratch 2 控制,  這樣正好能夠運用 Scratch 的遊戲編程功能 以及 Boost 的馬達與感應器, 製作出生動有趣的互動遊戲.
下面的影片就是一個結合兩者所製作的「顏色輪盤遊戲」, 玩法如下: 
  1. 先由 Scratch 2 顯示讓玩遊戲的人可以挑選所要下注顏色的畫面.
  2. 下注之後啟動Boost 的顏色輪盤隨機旋轉至某一個顏色, 再藉由 Boost 的顏色感應器讀取比對輸贏狀態.
  3. Scratch 會因應本局的輸贏, 變更舞台背景並計算剩餘的籌碼, 而且當贏局時 Boost 還會表演一小段歡呼動作作為獎勵.
  4. 一旦輸光所有籌碼, 本次的遊戲就隨之結束.


LEGO Boost 「顏色輪盤遊戲機」構造

遊戲機的構造全部都是使用 LEGO Boost 17101 的零件組合而成, 包含兩個內建馬達與一個外接馬達以及顏色感應器全部都用上, 各部分的功能如以下圖片說明:


使用 S2Bot app 連接 Boost 與 Scratch 2


S2Bot app 的功能是提供 Scratch 2 能夠以藍芽方式無線遙控 LEGO Boost, 包含: 馬達控制讀取感應器, 而執行 Scratch 的電腦, 無論是 Windows 或 Mac,  都必須使用 BLED112 藍芽配接器, 才能連接 Boost. 
  1. 此處 下載安裝 S2Bot app .
  2. 執行 S2Bot app, 由左上方下拉選單中挑選 LEGO Boost , 接著點按 Scan for Devices 開啟對話框連接 Boost.
  3. 若是首次連接 Boost, 再點按右上方的下拉選單按鈕, 選擇 New Scratch template 產生 Boost 的 Scratch 程式積木範本: boost_template.sb2 並存檔於電腦中.
  4. 在 Scratch 2 中透過 File->Open 開啟 boost_template.sb2, 即可於腳本區的 More Blocks 中使用 Boost 的程式積木.

以 Scratch2 製作劇場版的機器人控制體驗:結合 S2Bot 遙控 SBRick

PICAXE 這家公司的教育部門,推出了 S2BotScratch Helper Apps,提供了透過 Scratch 2 可以用來控制多種機器人系統,包含 LEGO 的 Wedo、Wedo 2.0、NXT、EV3以及 SBrick PF 馬達藍芽控制器

由於 Scratch 2 擅長於製作遊戲動畫,因此結合 S2Bot 就可以將對實體機器人的控制,融入到 Scratch 2 設計的劇情中,這會是相當有趣的體驗,也是其他程式語言很難做到的情境。
以下的影片,就是對上述的構想所做的嘗試。

影片首先開始的武器測試 (Weapon System Test) ,是展示以 Scratch 2 + S2Bot 遙控 SBrick PF 馬達控制器的功能,由 Pico 角色執行,包含:順/逆時針方向旋轉雷射槍座、改變瞄準方向以及發射雷射槍等動作。
而雷射槍
燈光閃爍特效是使用 Brickstuff 的照明系統 ( 參考本文 )。

接著是一個射擊遊戲,太空船 (Spaceship 角色) 會以隨機的高度與方向出現並飛越螢幕畫面,而 Pico 角色則一方面發射雷射槍 (Shoot laser gun 角色) 同時遙控 SBrick 射擊動作。

當 Spaceship 角色偵測到已碰觸到 Shoot laser gun 角色時,表示太空船被雷射槍擊中,這時候 Spaceship 角色以及舞台背景都會切換成為爆炸的造型,而 Pico 角色也呈現為歡呼的造型。

而配合劇情進行的各種音效,也更加凸顯出每個情境所強調的效果。