記錄畫圖軌跡
這篇文章會介紹,在 Scratch 裡使用擴充功能的畫筆,搭配變數、清單、邏輯判斷、重複無限次...等積木,製作一個可以記錄畫圖軌跡的功能,紀錄軌跡後,按下播放就可以自動畫出圖形。
角色設定
在角色編輯區,刪除貓咪角色,加入一個「空白」的角色,命名為「畫筆」 ( 參考:Scratch 角色設定 )。
因為待會使用畫筆繪圖,不會出現角色,所以直接使用全空的空白角色。
接著加入兩個預設的圖案,一個是綠色打勾 ( 命名為 ok ),一個是黑色打叉 ( 命名為 no ) ( 參考:Scratch 角色設定 )。
積木程式原理 ( ok )
點擊「ok」角色,從左側積木清單裡,新增 n、ok 和 no 三個變數,以及 x 和 y 兩個清單。
- 變數 n:讀取清單項目。
- 變數 ok:判斷是否按下開始畫 ( 打勾 ) 的按鈕。
- 變數 no:判斷是否按下清除 ( 打叉 ) 的按鈕。
- 清單 x:記錄畫圖過程的 x 座標。
- 清單 y:記錄畫圖過程的 y 座標。
設定點擊角色時,廣播「開始畫」的訊息,並設定點擊綠旗的動作:
- 使用重複無限次積木,每次重複將變數 ok 設為 0,並讓角色不要講話。
- 每次重複時判斷是否碰到滑鼠,如果碰到滑鼠,就將 ok 設為 1,讓角色講出「開始畫」。
積木程式原理 ( no )
點擊「no」角色,設定點擊角色時,刪除清單 x 和 y 的所有項目,並將清除舞台上的筆跡。
設定點擊綠旗的動作:
- 使用重複無限次積木,每次重複將變數 no 設為 0,並讓角色不要講話。
- 每次重複時判斷是否碰到滑鼠,如果碰到滑鼠,就將 no 設為 1,讓角色講出「清空畫面」。
完成後,點擊綠旗,滑鼠移動到 ok 或 no 的角色上,就會出現對應的文字。
積木程式原理 ( 畫筆 )
點擊「畫筆」角色,設定點擊綠旗的動作:
- 筆跡全部清除、停筆。
- 設定筆跡寬度為 3,顏色黑色。
- 刪除清單 x 和 y 的所有項目。
新增另外一組點擊綠旗積木,使用重複無限次積木,每次重複執行:
- 判斷「是否按下滑鼠」且「ok + no 等於 0」( 表示在舞台上按下滑鼠,且沒有碰到 ok 或 no 角色 )。
- 將畫筆定位到滑鼠的位置 ( 跟隨滑鼠移動 )。
- 分別將 xy 座標添加進清單 x、y。
- 下筆畫畫。
- 如果滑鼠放開或碰到 ok 或 no 角色。
- 將文字「x」添加進清單 x、y,表示該項目不是座標。
- 停筆畫畫。
- 等待直到「按下滑鼠」且「沒有碰到 ok 或 no」。
新增收到「開始畫」訊息的動作:
- 清除舞台上所有筆跡、停筆。
- 設定變數 n 為 1,表示從清單的第一個項目開始。
- 使用「重複次數」積木,重複「清單的長度」( 讀取清單裡每一個項目 )。
- 每次重複判斷如果項目的內容為「x」,表示不是座標,就停筆。
- 如果項目內容不是「x」,表示該項目是座標值,就定位到該座標,並下筆畫畫。
- 每次重複將 n 增加 1。
完成效果
完成後,點擊綠旗,用滑鼠在舞台上畫圖,點擊綠色勾勾就會畫出同樣的圖形,點擊黑色叉叉就會清空畫面。
範例解答
範例解答:記錄畫圖軌跡
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~