在上一篇《初識少兒編程》曾提到過Scratch的腳本標簽內包含10大模塊,本文將圍繞這10大模塊展開,分為兩部分:積木和編程概念,結合《動手玩轉Scratch2.0編程―STEAM創新教育指南》一書進行分析。
一、模塊
1)運動模塊
運動模塊中包含移動和轉向的操作,可將角色移動到舞台某一個具體的點,或者旋轉到某一個特定的方向。

在Scratch中0是向上,90°是向右,180°是向下,-90°是向左。

2)畫筆模塊
通過設置畫筆,可以觀察到角色在移動時的軌跡。

當畫筆狀態是落下時,那么角色移動時就會按照畫筆的屬性(顏色、大小、色度)繪出軌跡。

3)外觀模塊
在外觀模塊中,不但可以為讓角色說話或思考,還能給角色的造型和背景添加各種圖形特效,如旋轉、超廣角鏡頭、虛像等。不僅如此,還能設置角色的可視狀態和所在圖層。

4)聲音模塊
在聲音模塊中不僅能使用內置的音效,控制音量、設定節奏等,還能自己創作音樂。只需指定樂器(即音色),設定音調和拍數,就能演奏各類音樂作品,例如兒歌、流行歌曲等。

5)消息廣播機制
消息廣播存在於事件模塊中,該機制可讓多角色的腳本協調一致地執行。廣播的消息會發給所有角色(包括當前廣播的角色),當角色接收到的消息名稱和廣播的消息名稱相同時,就觸發相應的動作。

6)偵測
偵測模塊用於檢測坐標、顏色或時間等信息是否符合指定的要求。這些積木無法獨立使用,需要與控制模塊中的判斷語句或者運算符模塊中的比較語句配合使用。

二、編程概念
1)分而治之
分而治之是一種編程思想,當一個問題很大很復雜時,就可將該問題分解成許多小的問題,然后分別解決並獨立地測試每一個子問題,最后將這些子問題整合在一起,從而解決最初的問題。在更多模塊中即可自定義積木,它和各種積木一樣都可以卡合到腳本中,但內部的邏輯可以根據實際情況編寫。

2)數據類型
從某個角度講,應用程序的任務是處理各種數據類型(如數字、文本、圖像等)的數據並生成有價值的信息。Scratch支持3種數據類型:布爾、數字和字符串。布爾類型僅有兩個:true和false;數字類型可以是整數或小數;字符串類型是一系列字符的集合,字符包括(大寫或小寫)字母、數字以及符號(如+-&@等),它可以存儲姓名、地址、電話號碼、標題等信息。
參數凹槽共有3種形狀:六邊形(布爾)、矩形(字符串)和圓角矩形(數字)。

功能積木的外觀只有兩種形狀:六邊形和圓角矩形。每一種形狀都和數據類型有關,而圓角矩形既可以代表數字類型,也可以代表字符串類型。

3)變量和鏈表
變量是被命名的計算機內存區域。把變量想象成一個盒子,程序隨時都能存放盒子中的數據(數字和文本)。變量一個重要的用法是存儲算術表達式的結果,從而方便腳本隨后使用。例如要計算2+4+5的結果,可以先計算2+4得到6,並記住這個結果,然后用5加上之前的結果,並得出最終結果11。
在數據模塊中,可以創建變量。變量可以存儲任意類型的值,Scratch會根據上下文自動轉換數據類型。

鏈表(編輯器中翻譯為列表)是存放許多變量的一個容器,可以存儲或者獲得容器中的每一個變量的值。就像有許多梳妝台一樣,每一個抽屜都存放着物品。動態鏈表,能在程序運行時動態地增減內部變量;數字鏈表,由純數字變量構成的鏈表,用於找出最大值、最小值、計算平均數等。鏈表的創建同樣也在數據模塊中。

4)運算
在運算模塊中,除了可以加減乘除之外,還包括比較運算符和邏輯運算符。比較運算符可比較兩個變量或表達式的大小關系,即大於、小於或等於。邏輯運算符包括且、或以及否定:
且:有兩個參數,如果兩個參數均為true,且的結果才為true。
或:有兩個參數,若任何一個參數為真,或操作符則返回真;僅當兩個參數均為false時,才返回假。
否定:只有一個輸入參數,當參數為真時,結果為假。

5)循環
循環告訴計算機重復地執行一條或多條語句。最簡單的循環是確定型循環,它以特定的次數重復一系列語句。除了指定重復次數之外,有時還表現為使用循環計數器進行控制。
在於控制模塊中,Scratch支持3種類型的循環:無限循環,用條件語句控制的不確定型循環。

