Pixetto Scratch版彩球機[1]解析:
使用VIA Pixetto視覺感測器之顏色偵測功能
Line:ted2016.kpvs
Email:Lct4246@gmail.com
FB:http://gg.gg/TedLeeFB/
Email:Lct4246@gmail.com
FB:http://gg.gg/TedLeeFB/
Blog:http://gg.gg/TedLeeBlog/
Mar. 3, 2021
主題:樂齡
台灣已邁入(出)生不如死(亡)的高齡化社會。為了讓年長者能健康地維持身體機能,試著想想科技是否能幫上什麼忙呢?要老人家運動就要有伴,他們最想要和孫子們一塊兒玩。所以,做一台彩球機,祖孫可以同樂,豈不兩全其美呢?註:楊老師根據這個主題,原先設計有一實體的彩球機如影片所示(https://reurl.cc/6yd3dM)。
任務:
爺爺老了小7想要做個可以動手兼動腦的機台讓阿公可以每天one more, two more一下(利用8787 的顏色偵測功能製作一個可以首腦並用的Scratch抗老遊戲)。
材料
品名 |
數量 |
單位 |
備註 |
VIA Pixetto視覺感測器(含長、短micro USB傳輸線各一條) |
1 |
盒 |
|
紅、黃、藍、綠色球各一 |
1 |
組 |
|
*3D列印攝影機架 |
1 |
組 |
選配(楊昌珣老師分享) |
造形分析(結構)
請參考楊老師安排的情境設置方式來設計彩球機的架設場景。其中在筆電上用來放置8787的攝影機架,可參考書附楊老師分享的「3D列印攝影機架.stl」(https://reurl.cc/E2jNra)自行印出使用。此外,楊老師還設計有一雷切版結構,讀者可参考原作者分享的「AI活力彩球機scratch手推型.rld」(https://reurl.cc/KxlY4m)雷切檔也切一台來組裝。
功能分析
請先觀看書附楊老師錄製的操作影片(https://reurl.cc/9ZvAGx),讀者們應該可以看出彩球機主要有計時一分鐘及計分00~99兩大功能。本範例完整的程式碼可由此下載(https://reurl.cc/NXlox5)。
。- 劇本分析 在Pixetto Utility上先套用顏色偵測功能後開啟8787硬體和Pixetto Scratch傳輸資料的Pixetto Link中介程式。此時,會在螢幕右下方看到這隻程式正在電腦背後執行著。連入雲加速器(https://reurl.cc/pmvaLx),載入「範例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。
。- 劇本分析 在Pixetto Utility上先套用顏色偵測功能後開啟8787硬體和Pixetto Scratch傳輸資料的Pixetto Link中介程式。此時,會在螢幕右下方看到這隻程式正在電腦背後執行著。連入雲加速器(https://reurl.cc/pmvaLx),載入「範例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。
- 本文乃台北市仁愛國中楊昌珣老師及其公子楊喻丞共同創作作品。感謝楊老師惠允本書改寫後收錄。
- 六種授權條款。
沒有留言:
張貼留言