Showing posts with label Sprite. Show all posts
Showing posts with label Sprite. Show all posts

Jun 10, 2013

小朋友寫程式 (1-3):SCRATCH Sprite物件複製與程式修改

複製Sprite物件並逐步修改新物件的程式,這方法也太dirty work,若你身為一個優秀的programmer,還常常很笨的做dirty works,說你有多厲害我也不信!但是「一切從基礎做起」,還是要一步步修改給你參考 (不然要我現在跟新手解說 物件導向由class宣告產生同類別的相似objects 嗎?)。

  • 複製Do以便修改為Re物件。

複製Sprite物件



  • 新複製的Sprite物件必須拖拉到正確位置,並在程式碼修改為對的位置。 
Sprite物件拖拉到正確位置,並更名

設定新Sprite物件的新位置

分割程式區塊:滑鼠click所選 (含) 指令以下為新區塊

  •  分割程式區塊技巧:熟悉操作就對了。



  • 最後再改聲音就完成了。

觀察Play sound值與範圍,並設定新值 (D就是Re的音)
其他琴鍵可以依此類推,自己玩看看吧!現在還不是教「自己設計模組 More Blocks/Make a Block」。



小朋友寫程式 (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)

完成之琴鍵程式碼