Jun 10, 2013

小朋友寫程式 (1-3):SCRATCH Sprite物件設計與程式撰寫

寫程式先從What You See, What You Design開始。加上物件模組設計概念,鋼琴當然由琴鍵開始。先完成琴鍵UI物件,撰寫物件程式碼 (也就是物件導向的class codes),最後完整程式就可以由小模組整合完成。
  • 建立新專案 (Piano):刪除原先的貓咪UI物件,自行設計琴鍵。


  • Paint new sprite:click之後就可以自己畫新的UI物件 (Sprite1),用矩形當琴鍵,並用 "Fill with color" 填滿白色,並命名為 "c1"。之後,立刻複製 (duplicate) 另一琴鍵,並填滿灰色,以做為琴鍵按下時的陰影顯示。



  • 更改UI物件 (Sprite1) 名稱為 "Do",物件變數命名要清楚有意義:點選左上角 i 小icon,就可以修改物件名稱。

  • 撰寫UI物件 "Do" 的程式碼:點選 Scripts 就可以切換到物件的程式碼,以不同顏色分類指令類型,清楚理解指令動作和參數。如下圖,指令由上到下依序為「當click此物件Do」、「到此物件座標,注意:在拖拉move指令前先調整好物件位置」、「將物件裝飾換為c2 (製造按下去的陰影效果)」、「等0.1秒 (這樣才看得到按鍵效果)」、「將物件裝飾換為c1 (還原琴鍵)」、「設定樂器到which instrument的值」、「播放聲音0.5拍」。
原Piano琴鍵程式碼:set instrument to "which instrument"

我的程式碼還沒有將變數與樂器做data binding
  • 設定變數值,並與物件屬性值連結 (data binding):Scripts/Data/Make a Variable,產生一個變數命名為 "instrument#" 樂器編號,並在此Sprite物件點選右鍵,設定為 "Slider" 並設定最小值和最大值 (Min, Max)。最後拖拉 instrument# 物件到樂器物件的屬性,以便做data binding。 
Scripts/Data/Make a Variable:建立變數,設定為滑桿 (slider)

觀察instrument值的範圍 
限定範圍 (min, max)

拖拉變數值和物件屬性值連結 (data binding)

完成之琴鍵程式碼

No comments :

Post a Comment