連連看 ( 產生器 )
這篇文章會介紹,如何在 Scratch 裡使用變數、清單、畫筆、重複、偵測滑鼠按下、偵測碰到...等積木,實作一個連連看產生器,產生的連連看可以應用在另外的「連連看」範例當中。
角色設定
在角色編輯區,刪除貓咪角色,使用繪畫,繪製「點」和「畫筆」兩個新的角色,「點」角色是一個小黑圓點,「畫筆」角色是一個空白的角色 ( 參考:造型與繪圖 )。
接著加入「清除按鈕」( 打叉 ) 和「預覽按鈕」( 打勾 ) 兩個角色 ( 參考:Scratch 角色設定 )。
將「清除按鈕」和「預覽按鈕」,放置於舞台的右下角,「點」則隨意擺放在舞台上即可。
積木程式原理 ( 清除、預覽 )
點擊「清除按鈕」角色 ( 打叉圖案 ),當點擊清除按鈕時,發送「清除」的訊息。
點擊「預覽按鈕」角色 ( 打勾圖案 ),當點擊預覽按鈕時,發送「預覽」的訊息。
積木程式原理 ( 點 )
點擊「點」角色,新增變數「clear」和「x」和 「y」兩個清單。
設計點擊綠旗的程式:
- 使用「重複無限次」積木。
- 每次重複時,將「點」角色定位到滑鼠的位置 ( 跟隨滑鼠移動 )。
- 每次重複時,判斷滑鼠是否按下,如果按下滑鼠,建立分身。
完成後,在舞台上點擊滑鼠,就會出現一個個的黑點分身。
接著加入一些邏輯判斷,避免滑鼠按下時「重複建立分身」,也避免點擊「清除按鈕」和「預覽按鈕」時建立分身:
- 判斷如果「碰到預覽按鈕不成立」且「碰到清除按鈕不成立」( 黑點不在預覽按鈕和清除按鈕上方 )。
- 等待「滑鼠鍵按下不成立」( 滑鼠放開 ) 之後,建立自己的分身。
完成後,當滑鼠碰到預覽或清除按鈕時,就無法建立黑點分身。
加入擴充功能的「畫筆」,修改點擊綠旗程式,在點擊綠旗時,先將畫面的筆畫清空、清單內容清空、變數 clear 歸零,並設定圖像效果「幻影」( 透明度 ) 為 100 ( 完全透明 )。
為什麼要設定圖像效果「幻影」?因為程式會判斷是否碰到預覽或清除按鈕,如果使用「隱藏」,則角色本體會從舞台隱藏,將永遠不會碰到預覽或清除按鈕,所以使用「幻影」。
編輯「當分身產生」的程式:
- 設定圖像效果幻影為 0 ( 完全不透明 ),顯示分身。
- 將變數 clear 增加 1,表示畫面上有分身。
- 將分身的 x 和 y 座標分別記錄到 x 和 y 清單裡。
- 等待直到 clear 變數等於 0,表示按下了清除按鈕。
- 刪除分身。
最後加入收到「清除」訊息時的動作,將畫面的筆畫清空、清單內容清空、變數 clear 歸零。
完成後,點擊綠旗,就可以在舞台上點出黑點,點擊清除按鈕就可以清空畫面。
積木程式原理 ( 畫筆 )
點擊「畫筆」角色,新增一個變數 n,作為清單的處理使用。
編輯點擊預覽時,畫線連連看的程式:
- 當收到「預覽訊息」。
- 將畫筆定位到第一個點的座標 ( x 和 y 清單的第一個項目 )。
- 清空筆跡、將筆跡寬度設定為 5,下筆畫畫。
- 設定變數 n 為 1,表示從第一個點開始畫。
- 使用重複積木,重複清單的長度。
- 每次重複依序讓畫筆滑動 0.01 秒到對應的座標。
- 每次重複將 n 增加 1。
- 重複結束後,將畫筆滑動回第一個點的座標。
- 停筆。
完成後,點擊綠旗,就可以在舞台上點出連連看的黑點,點擊預覽按鈕後就可以預覽。
匯出清單項目,作為之後連連看使用
前往左側清單的「清單」,將 x 和 y 清單「勾選顯示」,x 和 y 清單就會出現在舞台上。
用滑鼠在清單上方「按右鍵」,點擊「匯出」,就能將清單項目匯出成 txt 或 csv,作為其他連連看範例使用。
注意,這個功能只有在「編輯頁面」才能使用。
範例解答
範例解答:連連看 ( 產生器 )
延伸教學
如果已經熟悉了連連看 ( 產生器 )的原理,還繼續閱讀「連連看」範例教學:連連看
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~