作者:Ted Lee
台灣已邁入(出)生不如死(亡)的高齡化社會。為了讓年長者能健康地維持身體機能,試著想想科技是否能幫上什麼忙呢?要老人家運動就要有伴,他們最想要和孫子們一塊兒玩。所以,做一台彩球機,祖孫可以同樂,豈不兩全其美呢?
一起來做個可以動手兼動腦的機台,讓阿公可以每天one more, two more一下吧(利用8787 的顏色偵測功能製作一個可以首腦並用的Scratch抗老遊戲)。
註:楊老師根據這個主題,原先設計有一實體的彩球機,如影片所示:
材料清單
造形分析(結構)
請參考楊老師安排的情境設置方式,來設計彩球機的架設場景。
其中在筆電上用來放置8787的攝影機架,可參考書附楊老師分享的「3D列印攝影機架.stl」,自行印出使用。
此外,楊老師還設計有一雷切版結構,讀者可参考原作者分享的「AI活力彩球機scratch手推型.rld」雷切檔也切一台來組裝。
功能分析
請先觀看書附楊老師錄製的操作影片,讀者們應該可以看出彩球機主要有計時一分鐘及計分00~99兩大功能。本範例完整的程式碼可由此下載。
1.舞台分析:使用這個文字圖形做為初始畫面的背景圖。
- 角色分析:本例中一共有
用來控制全局的controller,它一共有8個造形圖案,分別是紅綠黃藍的隨機出球、倒數計時的321、及遊戲結速的Game Over圖檔。
計分部份有十位數point_10及個位數point_1兩個角色。另外,計分部份則有十位數time_10及個位數time_1兩個角色。point_10、time_10和time_1都會有0~9共十個數字來切換顯示。
另外,因為遊戲限時1分鐘,所以計時的十位數字time_10只會在0~6變化
- 劇本分析:在Pixetto Utility上先套用顏色偵測功能後,開啟8787硬體和Pixetto Scratch傳輸資料的Pixetto Link中介程式。
此時,會在螢幕右下方看到這隻程式正在電腦背後執行著。
連入雲加速器,載入。
「範例14:Pixetto Scratch版彩球機解析.sb3」這隻我們整理楊老師分享的原始程式碼。
讀者設定好Pixetto Scratch與8787的序列埠後:
就可先行體驗一下彩球機如何讓爺爺奶奶們「運動變年輕」的魅力。
然後,我們來解析它的計分功能。玩家的得分範圍預設為00~99兩位數。
所以,程式在controller角色裡建立了變數score做為得分的累計,控制的程式片斷如下。
在計分顯示效果上,透過圖形數字(角色point_10和point_1的切換 ,在視覺效果上就會看到畫面上好像有真實的數字在不斷跳動著。
和計分的邏輯相同,計時的做法如出一輒,在controller角色裡建立了變數time來記錄剩遊戲剩餘的時間。
程式一開始時先呈現出3秒倒數計時的提示。
如果時間尚在60秒遊戲限時內的話,5秒隨機切換出題。
遊戲時間剩下3秒時出現提示音效。
時間到時顯示收尾畫面。
在計時顯示效果上,取出60~00的十位數(角色time_10)方法是把它扣掉個位數後再取出10的餘數。
例如:(36-6)/10…餘3,所以,36的十位數便是3。而取出個位數(角色time_1)的方法是取原數字的餘數即可,例如:36/10…餘6,所以,36的個位數便是6。
教學活動設計
- 阿公阿媽來打球 準備2套彩球機,邀請2位學員分飾阿公和阿媽來PK。請於2人的手上綁上重物來模擬長者行動遲緩的情境,以建立同理心。
- 多執行緒(multithreads) 在controller角色的程式中有數處擺放著等待積木,這是因為彩球機要同時要計分和計時,所以使用了CPU的多執行緒排程(scheduling)技術來實現。讀者們可試著調整這幾塊積木的數字大小,看看程式執果是否順暢。
實作練習題
修改彩球機的Pixetto Scratch程式,增加一得分90即達標遊戲停止的設定。
參考程式:修改controller角色的計時程式片斷如下:
(作者為本刊專欄作家,本文同步表於作者部落格,原文連結;責任編輯:謝涵如)
- 用GenAI生成連連看樣板 - 2025/05/15
- 細談「春仔產生器」的專案拆解 - 2025/04/17
- 用生成式AI打造「春仔」產生器 - 2025/03/12
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!