資訊內(nèi)容
學(xué)好Scratch必知的二三事,別樣的Scratch積木分類(lèi)(下)
利利:上一篇文章當(dāng)中,我們談到可以將Scratch當(dāng)中的積木分為兩大類(lèi),分別是“基礎(chǔ)效果類(lèi)”和“復(fù)雜功能類(lèi)”。基礎(chǔ)效果類(lèi)包含表現(xiàn)層以及交互層兩種,那么,復(fù)雜功能類(lèi)積木包含哪些內(nèi)容呢?
今天我們繼續(xù)來(lái)談Scratch當(dāng)中的積木類(lèi)別,以及這些積木的特點(diǎn)~
全文字?jǐn)?shù)3300字,推薦閱讀時(shí)長(zhǎng)12分鐘
復(fù)雜功能類(lèi)積木及特點(diǎn)
基本解析
復(fù)雜邏輯類(lèi),分為邏輯層、數(shù)據(jù)層和優(yōu)化層,邏輯層又可以細(xì)化為“基礎(chǔ)邏輯”“優(yōu)化邏輯”和“角色邏輯”。
●?基礎(chǔ)邏輯:條件語(yǔ)句(如果...那么...)、循環(huán)語(yǔ)句(重復(fù)執(zhí)行)、條件表達(dá)式(偵測(cè))
●?優(yōu)化邏輯:運(yùn)算操作,以及與條件表達(dá)式相關(guān)的所有值類(lèi)型積木(運(yùn)算、較為復(fù)雜的偵測(cè))
● 角色邏輯:背景切換、消息(廣播消息、接收消息)、克隆
復(fù)雜邏輯積木分類(lèi)

邏輯層
基礎(chǔ)邏輯
基礎(chǔ)邏輯部分,包含編程的三大結(jié)構(gòu)中的“循環(huán)結(jié)構(gòu)”和“分支結(jié)構(gòu)”,以及分支結(jié)構(gòu)當(dāng)中必不可少的“條件表達(dá)式 / 偵測(cè)條件”,主要對(duì)應(yīng)于Scratch中“控制”與“偵測(cè)”兩大模塊中的大部分積木。
循環(huán)結(jié)構(gòu):重復(fù)執(zhí)行系列積木,對(duì)應(yīng)于其他語(yǔ)言當(dāng)中的while、for等語(yǔ)句
分支結(jié)構(gòu):如果...那么...系列積木,對(duì)應(yīng)于其他語(yǔ)言當(dāng)中的if else語(yǔ)句
偵測(cè)條件:菱形的偵測(cè)類(lèi)積木,對(duì)應(yīng)于其他語(yǔ)言當(dāng)中的“條件表達(dá)式”,在偵測(cè)類(lèi)模塊當(dāng)中,提供了各種各樣的偵測(cè)條件,可以檢測(cè)當(dāng)前角色是否碰到顏色、指定角色,判斷是否按下鼠標(biāo)或某個(gè)鍵盤(pán)鍵位等等,這些偵測(cè)積木很簡(jiǎn)單,但它們是組成分支結(jié)構(gòu)以及部分循環(huán)結(jié)構(gòu)的重要一環(huán)。
基礎(chǔ)邏輯積木的分類(lèi)

各個(gè)基礎(chǔ)邏輯積木,能夠互相進(jìn)行嵌套,形成更復(fù)雜的邏輯,實(shí)現(xiàn)更豐富多彩的功能。
多種多樣的嵌套關(guān)系

優(yōu)化邏輯
優(yōu)化邏輯,主要基于當(dāng)前已經(jīng)搭建好的邏輯功能,進(jìn)行細(xì)節(jié)優(yōu)化與修繕,或者進(jìn)行更復(fù)雜的控制(“偵測(cè)條件”更多樣而復(fù)雜),主要對(duì)應(yīng)于Scratch中的“運(yùn)算”模塊,以及各個(gè)模塊當(dāng)中的“值類(lèi)型”積木。
優(yōu)化邏輯中的各類(lèi)積木

這些積木,對(duì)應(yīng)于其他語(yǔ)言當(dāng)中的各類(lèi)運(yùn)算(邏輯運(yùn)算、算術(shù)運(yùn)算、關(guān)系運(yùn)算、字符操作、數(shù)學(xué)函數(shù)方法等)
在案例作品當(dāng)中,優(yōu)化邏輯相關(guān)積木的加入,一方面,讓“偵測(cè)條件”變得復(fù)雜起來(lái),便于我們更好地檢測(cè)角色狀態(tài),并根據(jù)角色狀態(tài)執(zhí)行相應(yīng)功能;
另一方面,讓“基礎(chǔ)邏輯”(如果...那么...等)積木得到了優(yōu)化,降低了一個(gè)功能當(dāng)中需要的積木量與復(fù)雜度。
實(shí)現(xiàn)復(fù)雜的偵測(cè)(點(diǎn)擊圖片可放大)

通過(guò)與或非,優(yōu)化如果...那么...等復(fù)雜的嵌套邏輯


碩碩
什么是值類(lèi)型積木?
利利
在Scratch當(dāng)中用于存儲(chǔ)值,“橢圓”形狀的積木


碩碩
還有哪些類(lèi)型的積木呢?
利利
這是對(duì)Scratch另一種維度的分類(lèi),后面有機(jī)會(huì)我們單獨(dú)開(kāi)文詳細(xì)來(lái)講吧~!

角色邏輯
角色邏輯,是能夠跨越角色進(jìn)行操控的相關(guān)積木,主要對(duì)應(yīng)于Scratch“事件”模塊當(dāng)中的部分積木 —— 背景的切換、消息的廣播和接收、克隆。
角色邏輯相關(guān)的積木

背景的切換、消息的廣播和接收,隸屬于“事件類(lèi)模塊”,但是和其他“事件類(lèi)”積木,卻有所不同。
其他事件類(lèi)積木,均需要用戶(hù)(作品的使用者)通過(guò)外部環(huán)境觸發(fā)(按下鍵盤(pán)、鼠標(biāo)、點(diǎn)擊綠旗、發(fā)出聲響等等);
背景切換與廣播消息,由程序內(nèi)部觸發(fā),并不直接受外部控制。
這兩種事件能夠?qū)ⅰ敖巧迸c“背景”、“角色”與“角色”連接在一起,是實(shí)現(xiàn)“跨角色跨背景”控制必不可少的積木。
恰恰是這種關(guān)聯(lián),進(jìn)一步豐富了案例功能,最重要的是,讓Scratch制作的東西,從“案例”變成了“作品”!

碩碩
案例與作品的區(qū)別是什么?
利利
我們可以把案例理解為一個(gè)簡(jiǎn)單的demo,簡(jiǎn)單的樣例,它是一個(gè)作品的核心功能部分


碩碩
為何說(shuō),背景切換和消息廣播的功能,能夠把案例變成作品?
利利
如果希望一個(gè)作品當(dāng)中包含“開(kāi)始”“結(jié)束”“幫助”“游戲核心功能”等幾個(gè)部分,必然要出現(xiàn)多個(gè)場(chǎng)景(背景),不同角色在不同場(chǎng)景當(dāng)中展示的效果也會(huì)有所不同。

利利
實(shí)現(xiàn)場(chǎng)景切換,并控制不同場(chǎng)景當(dāng)中不同角色的狀態(tài),建立角色與角色之間的關(guān)系,都需要使用到此類(lèi)(角色邏輯)積木。

克隆,隸屬于“控制類(lèi)模塊”,它能夠基于一個(gè)角色,復(fù)制多個(gè)“虛擬”的相同角色(復(fù)制的角色不會(huì)出現(xiàn)在角色面板當(dāng)中),并且能夠?yàn)檫@些“虛擬”角色設(shè)置不同的功能。
小貼士
背景切換、廣播消息事件的用法
使用背景切換、廣播消息,創(chuàng)建事件。
通過(guò)“當(dāng)背景切換為”和“當(dāng)接收到某消息”,來(lái)接收這些事件,并定義發(fā)生這些事件時(shí)要執(zhí)行的具體功能(積木組)。
事件的發(fā)生與接收

小貼士
關(guān)于特殊的響度檢測(cè)
響度是使用相對(duì)較少的一類(lèi)積木,它隸屬于“基礎(chǔ)效果類(lèi) - 交互層”積木,用戶(hù)通過(guò)外部聲音的大小,來(lái)控制角色發(fā)生變化。
在前一篇文章當(dāng)中,并沒(méi)有太多提及,所以,就在這里做個(gè)補(bǔ)充吧~哈哈
邏輯層積木小結(jié)
基礎(chǔ)邏輯、優(yōu)化邏輯、角色邏輯在案例當(dāng)中的功能以及關(guān)系:
●?基礎(chǔ)邏輯:實(shí)現(xiàn)了對(duì)角色狀態(tài)的判斷;
●?優(yōu)化邏輯:在“基礎(chǔ)邏輯”之上,使用更少的積木,實(shí)現(xiàn)了對(duì)角色狀態(tài)“更精確更精細(xì)”的判斷;
●?角色邏輯:功能邏輯更復(fù)雜,實(shí)現(xiàn)角色與角色/背景間的邏輯與交互,多個(gè)類(lèi)似角色的功能操作。
數(shù)據(jù)層
在Scratch中,充當(dāng)數(shù)據(jù)層的積木,是變量和列表(均隸屬于變量模塊)。
在幾乎所有的編程語(yǔ)言當(dāng)中,變量能夠存儲(chǔ)數(shù)據(jù),也能夠優(yōu)化積木邏輯。
在Scratch當(dāng)中,變量更多的作用在于存儲(chǔ)數(shù)據(jù),而非優(yōu)化功能,這與Scratch本身特點(diǎn)相關(guān)。
此外,與其他語(yǔ)言相比,Scratch在數(shù)據(jù)存儲(chǔ)方面相對(duì)較為弱勢(shì),只有“變量”和“一維列表”,無(wú)法使用多維列表(其他語(yǔ)言當(dāng)中成為“多維數(shù)組”),也缺少了非常重要的“對(duì)象”。

路人甲
Scratch在數(shù)據(jù)層做得不好?
碩碩
數(shù)據(jù)存儲(chǔ)上的不便,的確會(huì)導(dǎo)致制作時(shí)的一些局限性,譬如在制作“需要存儲(chǔ)大量數(shù)據(jù)”或“有關(guān)聯(lián)數(shù)據(jù)”的項(xiàng)目時(shí),相對(duì)比較復(fù)雜。

利利
Scratch在數(shù)據(jù)層上的這種處理方式,其實(shí)也是因Scratch軟件本身特點(diǎn)所限制的

碩碩
是的,既需要滿(mǎn)足“按照角色進(jìn)行積木編寫(xiě)”的功能,又需要滿(mǎn)足“漂亮的視覺(jué)呈現(xiàn)”,在數(shù)據(jù)層上自然會(huì)有根據(jù)整體軟件的定位做出一定的調(diào)整

利利
其實(shí)任何一門(mén)語(yǔ)言都不是萬(wàn)能的,作為編程語(yǔ)言的使用者,要做的是了解這門(mén)語(yǔ)言,并將這門(mén)語(yǔ)言的優(yōu)勢(shì)和長(zhǎng)處發(fā)揮到極致

優(yōu)化層
在Scratch中,目前我們還沒(méi)有提及的,就是“自制積木”了,這個(gè)模塊屬于優(yōu)化層積木,對(duì)應(yīng)于其他語(yǔ)言當(dāng)中的函數(shù)。
自制積木的作用,在于將一個(gè)角色當(dāng)中通用功能“打包”起來(lái),之后多次使用,增強(qiáng)積木組的復(fù)用性,提升積木組的擴(kuò)展性。
優(yōu)化層 - 自制積木 - 通過(guò)參數(shù)控制具體功能

需要注意的是,自制積木,只能夠應(yīng)用于當(dāng)前角色當(dāng)中,無(wú)法應(yīng)用于所有角色(無(wú)法跨角色使用)。

路人甲
在Scratch當(dāng)中,有沒(méi)有能夠應(yīng)用于所有角色的“自制積木”(方法 / 函數(shù))?
利利
沒(méi)有


路人甲
為何自制積木只能應(yīng)用于當(dāng)前的角色呢?
利利
在上一篇文章當(dāng)中我們提及到,Scratch當(dāng)中存在對(duì)象、方法、屬性,每個(gè)角色都是一個(gè)對(duì)象,自制積木,是定義在這個(gè)角色當(dāng)中的,因此,自制積木是相應(yīng)角色的方法。

文章傳送門(mén):學(xué)好Scratch必知的二三事,別樣的Scratch積木分類(lèi)(上)
簡(jiǎn)言之,我們作為Scratch作品的編寫(xiě)者,無(wú)權(quán)操作底層功能函數(shù)(方法),只能夠?yàn)榻巧?/ 背景這些對(duì)象添加一些方法。
小貼士
沒(méi)有繼承功能的Scratch
在Scratch當(dāng)中,角色和角色之間并沒(méi)有“繼承”關(guān)系。
當(dāng)作品中,有多個(gè)角色存在相似功能時(shí),雖然積木類(lèi)似,但是都需要單獨(dú)編寫(xiě)。
編寫(xiě)時(shí)自然會(huì)比較“累”,好在我們還有“復(fù)制大法”……
總結(jié) ~ ~ ~!
已經(jīng)講解完Scratch所有積木的分類(lèi)了,我們一起來(lái)回顧一下!
● 基礎(chǔ)效果類(lèi)積木 —— 讓角色的屬性(樣式)能夠發(fā)生簡(jiǎn)單的變化
●?基礎(chǔ)邏輯類(lèi)積木 —— 對(duì)角色進(jìn)行狀態(tài)檢測(cè)和控制,并根據(jù)角色狀態(tài)執(zhí)行不同的功能
●?優(yōu)化邏輯類(lèi)積木 —— 使用更少的積木,對(duì)角色更精確更精細(xì)地檢測(cè)與控制
●?角色邏輯類(lèi)積木 —— 實(shí)現(xiàn)角色與角色/背景間的邏輯與交互
●?數(shù)據(jù)類(lèi)積木 —— 進(jìn)行數(shù)據(jù)記錄,增強(qiáng)作品的可玩性
●?優(yōu)化類(lèi)積木 —— 減少角色的積木量,增強(qiáng)積木擴(kuò)展性
在了解Scratch積木分類(lèi)之后,什么樣的學(xué)習(xí)順序更有利于我們又快又好的掌握Scratch呢?學(xué)習(xí)Scratch又有哪些注意事項(xiàng)呢?后面我們慢慢來(lái)談~
教育的路上,不忘初心!
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過(guò)郵件及時(shí)和我們聯(lián)系刪除

- 上一篇
用scratch繪制精美圖案(05)
這是我2019年堅(jiān)持制作的第71次推文 曲線(xiàn)的繪制 圓的繪制:
- 下一篇
Scratch全國(guó)少兒編程競(jìng)賽獲獎(jiǎng)作品《記憶碎片》解析上篇
Scratch全國(guó)少兒編程競(jìng)賽 獲獎(jiǎng)作品解析 《記憶碎片》 本文介紹的作品是全國(guó)青少年創(chuàng)意編程與智能設(shè)計(jì)大賽創(chuàng)意編程比賽一等獎(jiǎng)獲得者孫佳閱同學(xué)的最新參賽作品。 作品說(shuō)明 暑假里,我無(wú)意中被媽媽訂閱的一期《三聯(lián)生活周刊》的主題《我把自己弄丟了