資訊內容
兒童編程啟蒙:3.基礎:Scratch腳本標簽
這一篇打算將Scratch腳本標簽的10個模塊過一遍。
大家可能說內容會不會太多?我的回答是:不會!
-
第一,不是所有的模塊都需要細講,第一篇文章說過,Scratch的幫助指南做得特別友好,簡單的模塊都可以通過幫助指南掌握清楚,只是需要大家動手嘗試;
-
第二,腳本標簽下的《數據》和《更多模塊》稍微高階一點,放后面講;
-
第三,我想說的是,對大多數指令模塊的學習,只有通過實際做一些項目才能達到真正理解和掌握,所以這里只會提及我認為比較重要需著重說的知識點。
So這里我只會涉及到動作、事件、控制和偵測四個模塊,外觀、聲音、畫筆、數字和邏輯運算四個模塊比較簡單,讓大家自己動手學習了解。
另外,腳本區的指令積木很多種,遵循下圖的通用規則:
01
運動模塊
角色絕大多數都不是一個點那么小,當角色在移動、轉動時,在背景中所處的坐標到底是角色的哪個位置為參照呢,答案是角色的中心點,在Scratch這個體系中就是按角色的中心點來決定角色的在背景中位置以及旋轉中心。如果一個角色是在坐標x:0 y:0這個位置,那么一定是這個角色的中心點在這個坐標,這個角色旋轉也是以這個點為中心旋轉。
我們手繪一個角色-正方形,將正方形的造型中心點設置為正方形正中間,然后加了段旋轉代碼,
再對比將正方形的造型中心點設置為正方形的左上角(同樣的代碼)。
如何設置角色的中心點呢?
先選中角色,然后點擊造型,選中右上角的設置造型中心,然后光標變成十字,在點擊希望的中心點即可。
運動模塊中的代碼指令簡介:
02
事件模塊
這個模塊下的指令積木都是觸發類,當這個模塊中描述的事件發生時,后面的代碼才會執行。需要注意的一點是,這個模塊中積木的形狀,除了廣播消息有兩條積木有卡口外,其他積木指令上部都沒有卡口,說明事件指令基本都是作為指令塊的第一條指令。
下圖中,鼠標點擊紅色框中的綠旗,那么綠旗被點擊的事件發生,“移動10步、向右旋轉15度....”這三句代碼就會被執行。
再加一個“當按下空格鍵”的事件代碼塊,那么當我們按下空格鍵時,小貓就先上移50步,等待0.5秒,然后下移50步。
這個事件模塊中需要著重講的是廣播指令,因為它在這個事件模塊里算稍微難一些,但它用得非常頻繁,是非常重要的指令。Scratch的消息廣播機制是用來協調各個角色間的行為的,任何角色都可以廣播帶有名稱的消息,這個名稱可以根據程序的需要自行指定,廣播的消息會發送給所有角色(包括當前廣播這條消息的角色),只要積木指令“當接收到abc”收到的消息名為abc的廣播,則這塊積木代碼觸發執行。只要程序沒停止,“當接收到abc”會一直等待并接收名為abc的廣播消息。
這里我們用一個小男孩和恐龍對話來演示廣播指令的使用,角色boy1的指令如下:1.當綠旗被點擊,2.說一句hello,3.廣播一條sayhi的消息出去
恐龍的指令如下:1.當接受到sayhi消息 ?2.說 hi,boy!
相信大家通過這個演示能大概了解廣播的機制。另外“廣播xxxx消息并等待”與“廣播xxx”非常相似,但是前者會一直等待所有接收消息的腳本執行完畢后才繼續往下執行。
03
控制模塊
控制模塊顧名思義,就是控制程序的走向,涉及到等待、循環、判斷。循環分有限循環和無限循環,有限循環是程序設計者知道循環次數時使用,無限循環一般用于偵測并等待某種事件的發生或者滿足某種條件前一直要做的事情。判斷家長們多少有點熟悉,Scratch判斷僅僅是把if...和if...else做成了積木塊,沒啥好講的。控制模塊直觀上比較容易理解,但具體到應用是非要考驗邏輯思維的,這就需要腦袋中有清晰的程序流程圖,如果腦袋中這個流程圖還不清晰,請先在紙上畫出來再編程。關于程序流程圖我們在后續文章中會講到。
克隆是Scratch2中新引入的特性,“克隆自己(其他角色)”能快速復制出一模一樣的角色出來,為了避免無限制創建克隆體將系統資源耗盡,目前限制只能克隆300次。當一個克隆體被創建時,它就會自動啟動,同時激發事件:“ 當作為克隆體啟動時”。
這個演示中,正方形本體每次旋轉15度后克隆一個正方形不動,一共克隆24個正方形,每次克隆一個正方形就會觸發“當作為克隆體啟動”這個事件,所以這24個正方形3秒后被刪除消失。
04
偵測模塊
偵測模塊是用于偵測位置、聲音、視頻、以及沒有放入事件模塊中的其他事件,從指令積木的形狀來看,帶問號的都是六邊形,可以嵌入控制模塊的判斷中,其他基本都是圓角矩形(帶卡口的是執行語句,沒卡口的是變量類均需要嵌入其他語句),
偵測、控制兩個模塊平時聯系得特別緊密,比如偵測兩個角色是否碰到,是否碰到某種顏色等等,都需要涉及到判斷和循環。
既然是世界杯期間,這里用一個簡單的踢足球的例子組合使用移動、事件、控制、偵測、造型這些模塊!
為了讓小女孩走路顯得更自然,這個女孩角色有4個造型
足球的代碼和造型
最后效果是:
今天的內容到這里結束了,歡迎大家評論給出建議。謝謝!
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除
