無聲電子琴_進階題
學習重點:
1.認識手繪背景 2.認識在背景寫程式 3.認識角色和背景在使用程式積木時有何不同 4.認識外觀類程式積木中的圖像效果積木
學習重點:
1.認識手繪背景 2.認識在背景寫程式 3.認識角色和背景在使用程式積木時有何不同 4.認識外觀類程式積木中的圖像效果積木
情境主題
請模擬一台琴鍵可被按下,但沒有聲音的電子琴。
情境演示
學習重點
1.變數、清單
變數
一個變數由 變數名稱 & 變數值 兩個部分組成。
程式指令 A = 10 表示將 10 指派給 A ,所以 A 是變數名稱,10 是變數值。
變數依作用範圍大小,可分為: 適用於所有角色 & 僅適用當前角色 , 前者作用範圍大 ,是所有角色都可取用的變數; 後者作用範圍小 ,僅有被指派該變數的角色,才可以使用。
容易混淆的變數積木:
適用於所有角色 或 僅適用當前角色
變數...設為... 或 變數...改變...
左側的積木相當於程式指令 A = 10,它能使變數 A 的值重設為 10。
左側的積木相當於數學運算式 A(新)=A(舊)+10 ,它能使變數 A 的值重設為比現在多 10。
清單
清單是變數的集合,它以 項目編號 & 項目值 ,表示變數。
右圖的清單中,test是清單名稱,最下面長度 2 是指清單中有兩項變數,分別是 第 1 項='thing' & 第 2 項= 10 。
2.分身、模組(函式積木)
分身
當一個角色要同時出現好多個在舞台上,為了精簡和維護程式碼的需要,我們會以 分身 的方式處理。
當使用分身時,我們會將真正的角色隱藏起來,只留下分身顯示在舞台上。為了辨識每一個分身,我們會設一個 僅適用當前角色 的變數,給每一個分身作為識別碼。
分身程式的一般寫法:
改變左側的『等待秒數』或右側的『持續秒數』會如何?
兩側如何配合才會得到最佳效果?
前兩項改變秒數的實測,告訴了我們什麼?
左側的程式執行到了 建立自己的分身 積木時,會觸發右側的 事件模組 ,此時兩側的程式會同時向下執行。
左側程式的 等待秒數 ,應略大於右側程式的 持續秒數 ,程式執行結果才能正確。
4.為何變數『分身編號』要使用 僅適用當前角色 ?
請將下方積木與上題 3.的積木接在一起,左邊接左邊,右邊接右邊,最後再加一個獨立的事件模組。
執行程式,觀察結果。
模組(函式積木)
當程式大到一定程度,將嚴重地減緩程式執行效率、增加程式複雜度,進而墊高程式維護的成本,因此有了 模組化程式設計 的出現。
模組化程式設計的概念,就是將程式依功能需求,拆分成幾個區塊,每個區塊只負責單一功能的製作,彼此獨立不會重疊, 這種區塊就是模組 。
模組在 Scratch 裡被稱為 函式積木 ,是一種 自定義 的組合式積木,由 積木名稱 及 傳遞參數 兩部分組成,其中, 積木名稱是必要項 , 傳遞參數則是選項 ,可有可無。
本專案模組規劃如下:
3.不同專案中角色的互通
先開啟來源專案。
到「角色區」,在你需要的角色上點右鍵,選擇 匯出 ,可存檔在桌面上。
關閉來源專案。
開啟目的專案。
到「角色區」,點擊「選個角色」,按下 上傳 ,隨後選擇步驟 2 中存在桌面的角色檔。
上傳完畢,在角色區就會看到新增了一個角色。
4.程式碼的複製
同一個專案中的複製
拖曳你要複製的程式碼,到角色區你要貼上的角色上方。
當該角色 出現左右搖動的現象 時,放開滑鼠,即完成複製貼上的工作。
不同專案的複製
先開啟你要複製程式碼的專案,再以滑鼠點擊左側最下方的 背包 ,開啟背包。
將你要複製的程式碼,以滑鼠拖曳到背包中,關閉專案,即完成複製的工作。
開啟你要貼上程式碼的專案,再從背包中將程式碼拖曳到程式區,即完成貼上的工作。
運算思維的發想
發想一、邏輯角度:
老師會分享含有本專案所有角色的作品,你如何從不同的專案中獲取角色、循環利用?
白鍵、黑鍵非常符合分身的製作條件,你如何決定第一個白鍵和第一個黑鍵的位置?
你能找出白鍵、黑鍵的排列規律,讓程式在產生分身時,自動排放在正確位置上?
圖一顯示,黑鍵的排列有特殊例外不排的狀況,你會如何處理?
圖一:電子琴外觀
發想二、運算角度:
你從哪裡可以查到,白鍵、黑鍵的寬度和高度?
圖二中,兩個緊鄰的白鍵,它們定位點間的距離是多少?
圖二中,兩個緊鄰的黑鍵,它們定位點間的距離又是多少?
圖二:黑鍵與黑鍵、白鍵與白鍵位置關係
關鍵物件創設、命名 & 屬性設定
專案名稱:無聲電子琴
關鍵物件創設與命名:
從老師的專案,獲取你需要的背景及角色:
老師分享的專案,在班級創作坊。
分享人是 npjhteacher,專案名稱是「模擬篇_無聲電子琴角色」。
請點開老師專案的程式畫面。
匯出 背景
點選老師專案的背景區,在左上角背景介面的「電子琴底座」,按 右鍵 選「匯出」。
FireFox 就會將背景「電子琴底座」,從老師的專案,下載儲存到你 電腦的下載夾 中。
匯出 角色
仿照第 2 點,將老師專案中角色區的 4 個角色,全部 匯出 ,儲存到你 電腦的下載夾 中。
關閉老師分享的專案 。
上傳 背景
開啟你自己的空白無聲電子琴專案 。
在背景區按下 選個背景 ,點選 上傳 ,再選取你「匯出」所得到的背景圖「電子琴底座」,將其上傳,就能成為你專案中的背景圖。
刪除背景區背景 backdrop1
上傳 角色
仿照第 4 點,將你「匯出」所得到的 4 個角色,全部 上傳 ,成為你專案中的角色。
刪除角色區角色 Sprite1
關鍵物件屬性設定:
角色區角色 白鍵:
當綠旗被點擊
隱藏
造型換成白鍵
變數 白鍵起始X 設為 -114 (「適用於所有角色」)
變數 白鍵常數Y 設為 -26 (「適用於所有角色」)
變數 白鍵分身ID 設為 0 (「僅適用現有角色」)
角色區角色 黑鍵:
當綠旗被點擊
隱藏
造型換成黑鍵
變數 黑鍵起始X 設為 -98 (「適用於所有角色」)
變數 黑鍵常數Y 設為 6 (「適用於所有角色」)
變數 黑鍵分身ID 設為 0 (「僅適用現有角色」)
角色區角色 小星星:
當綠旗被點擊
定位到 x:-174 y:-39
顯示
角色區角色 小蜜蜂:
當綠旗被點擊
定位到 x:-174 y:38
顯示
演算法流程圖 VS Scratch 程式積木
黑鍵請仿照白鍵,自己思考看看。