国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現在的位置是:首頁 » scratch編程資訊

資訊內容

學好Scratch必知的二三事,別樣的Scratch積木分類(下)

極客小將2020-12-11-
利利:上一篇文章當中,我們談到可以將Scratch當中的積木分為兩大類,分別是“基礎效果類”和“復雜功能類”。基礎效果類包含表現層以及交互層兩種,那么,復雜功能類積木包含哪些內容呢? 今天我們繼續(xù)來談Scratch當中的積木類別,以

利利:上一篇文章當中,我們談到可以將Scratch當中的積木分為兩大類,分別是“基礎效果類”和“復雜功能類”。基礎效果類包含表現層以及交互層兩種,那么,復雜功能類積木包含哪些內容呢?

今天我們繼續(xù)來談Scratch當中的積木類別,以及這些積木的特點~

全文字數3300字,推薦閱讀時長12分鐘

復雜功能類積木及特點

基本解析

復雜邏輯類,分為邏輯層、數據層和優(yōu)化層,邏輯層又可以細化為“基礎邏輯”“優(yōu)化邏輯”和“角色邏輯”。

●?基礎邏輯:條件語句(如果...那么...)、循環(huán)語句(重復執(zhí)行)、條件表達式(偵測)

●?優(yōu)化邏輯:運算操作,以及與條件表達式相關的所有值類型積木(運算、較為復雜的偵測)

● 角色邏輯:背景切換、消息(廣播消息、接收消息)、克隆

復雜邏輯積木分類

upload/article/images/2020-12-11/2cc53556df6aef15c10a8166e4453d88.jpg

邏輯層

基礎邏輯

基礎邏輯部分,包含編程的三大結構中的“循環(huán)結構”和“分支結構”,以及分支結構當中必不可少的“條件表達式 / 偵測條件”,主要對應于Scratch中“控制”與“偵測”兩大模塊中的大部分積木。

循環(huán)結構:重復執(zhí)行系列積木,對應于其他語言當中的while、for等語句

分支結構:如果...那么...系列積木,對應于其他語言當中的if else語句

偵測條件:菱形的偵測類積木,對應于其他語言當中的“條件表達式”,在偵測類模塊當中,提供了各種各樣的偵測條件,可以檢測當前角色是否碰到顏色、指定角色,判斷是否按下鼠標或某個鍵盤鍵位等等,這些偵測積木很簡單,但它們是組成分支結構以及部分循環(huán)結構的重要一環(huán)。

基礎邏輯積木的分類

upload/article/images/2020-12-11/77ab9dc3c7ee6856acd34e31fcf98cf4.jpg

各個基礎邏輯積木,能夠互相進行嵌套,形成更復雜的邏輯,實現更豐富多彩的功能。

多種多樣的嵌套關系

upload/article/images/2020-12-11/dd0c8b6fca84baa2b158e393d2b8f618.jpg

優(yōu)化邏輯

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

優(yōu)化邏輯中的各類積木

upload/article/images/2020-12-11/62994e68172be76be5aab5d40f17b231.jpg

這些積木,對應于其他語言當中的各類運算(邏輯運算、算術運算、關系運算、字符操作、數學函數方法等)

在案例作品當中,優(yōu)化邏輯相關積木的加入,一方面,讓“偵測條件”變得復雜起來,便于我們更好地檢測角色狀態(tài),并根據角色狀態(tài)執(zhí)行相應功能;

另一方面,讓“基礎邏輯”(如果...那么...等)積木得到了優(yōu)化,降低了一個功能當中需要的積木量與復雜度。

實現復雜的偵測(點擊圖片可放大)

upload/article/images/2020-12-11/a494267256ba102ddaf5843f587d61ab.jpg

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

upload/article/images/2020-12-11/953ab73be15ecccdb399d5da6763d82b.jpgupload/article/images/2020-12-11/169a6b548501e96835485e36e3e48e9b.jpg

碩碩

什么是值類型積木?

利利

在Scratch當中用于存儲值,“橢圓”形狀的積木

upload/article/images/2020-12-11/6e8830b3ba38a0c2c484108b4ea17a57.jpgupload/article/images/2020-12-11/169a6b548501e96835485e36e3e48e9b.jpg

碩碩

還有哪些類型的積木呢?

利利

這是對Scratch另一種維度的分類,后面有機會我們單獨開文詳細來講吧~!

upload/article/images/2020-12-11/6e8830b3ba38a0c2c484108b4ea17a57.jpg

角色邏輯

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

角色邏輯相關的積木

upload/article/images/2020-12-11/2b8402e8efd011bbbacb920dc1ca4fa3.jpg

背景的切換、消息的廣播和接收,隸屬于“事件類模塊”,但是和其他“事件類”積木,卻有所不同。

其他事件類積木,均需要用戶(作品的使用者)通過外部環(huán)境觸發(fā)(按下鍵盤、鼠標、點擊綠旗、發(fā)出聲響等等);

背景切換與廣播消息,由程序內部觸發(fā),并不直接受外部控制。

這兩種事件能夠將“角色”與“背景”、“角色”與“角色”連接在一起,是實現“跨角色跨背景”控制必不可少的積木。

恰恰是這種關聯(lián),進一步豐富了案例功能,最重要的是,讓Scratch制作的東西,從“案例”變成了“作品”!

upload/article/images/2020-12-11/169a6b548501e96835485e36e3e48e9b.jpg

碩碩

案例與作品的區(qū)別是什么?

利利

我們可以把案例理解為一個簡單的demo,簡單的樣例,它是一個作品的核心功能部分

upload/article/images/2020-12-11/6e8830b3ba38a0c2c484108b4ea17a57.jpgupload/article/images/2020-12-11/169a6b548501e96835485e36e3e48e9b.jpg

碩碩

為何說,背景切換和消息廣播的功能,能夠把案例變成作品?

利利

如果希望一個作品當中包含“開始”“結束”“幫助”“游戲核心功能”等幾個部分,必然要出現多個場景(背景),不同角色在不同場景當中展示的效果也會有所不同。

upload/article/images/2020-12-11/6e8830b3ba38a0c2c484108b4ea17a57.jpg

利利

實現場景切換,并控制不同場景當中不同角色的狀態(tài),建立角色與角色之間的關系,都需要使用到此類(角色邏輯)積木。

upload/article/images/2020-12-11/6e8830b3ba38a0c2c484108b4ea17a57.jpg

克隆,隸屬于“控制類模塊”,它能夠基于一個角色,復制多個“虛擬”的相同角色(復制的角色不會出現在角色面板當中),并且能夠為這些“虛擬”角色設置不同的功能。

小貼士

背景切換、廣播消息事件的用法

使用背景切換、廣播消息,創(chuàng)建事件。

通過“當背景切換為”和“當接收到某消息”,來接收這些事件,并定義發(fā)生這些事件時要執(zhí)行的具體功能(積木組)。

事件的發(fā)生與接收

upload/article/images/2020-12-11/c858e0fd0cdafc2a3e9d9be5898b3c0d.jpg

小貼士

關于特殊的響度檢測

響度是使用相對較少的一類積木,它隸屬于“基礎效果類 - 交互層”積木,用戶通過外部聲音的大小,來控制角色發(fā)生變化。

在前一篇文章當中,并沒有太多提及,所以,就在這里做個補充吧~哈哈

邏輯層積木小結

基礎邏輯、優(yōu)化邏輯、角色邏輯在案例當中的功能以及關系:

●?基礎邏輯:實現了對角色狀態(tài)的判斷;

●?優(yōu)化邏輯:在“基礎邏輯”之上,使用更少的積木,實現了對角色狀態(tài)“更精確更精細”的判斷;

●?角色邏輯:功能邏輯更復雜,實現角色與角色/背景間的邏輯與交互,多個類似角色的功能操作。

數據層

在Scratch中,充當數據層的積木,是變量和列表(均隸屬于變量模塊)。

在幾乎所有的編程語言當中,變量能夠存儲數據,也能夠優(yōu)化積木邏輯。

在Scratch當中,變量更多的作用在于存儲數據,而非優(yōu)化功能,這與Scratch本身特點相關。

此外,與其他語言相比,Scratch在數據存儲方面相對較為弱勢,只有“變量”和“一維列表”,無法使用多維列表(其他語言當中成為“多維數組”),也缺少了非常重要的“對象”。

upload/article/images/2020-12-11/1df28d8a631a2068eba0c5fb54e4db1a.jpg

路人甲

Scratch在數據層做得不好?

碩碩

數據存儲上的不便,的確會導致制作時的一些局限性,譬如在制作“需要存儲大量數據”或“有關聯(lián)數據”的項目時,相對比較復雜。

upload/article/images/2020-12-11/9b176f77de0be7e5f0f59cb2e8bcb112.jpg

利利

Scratch在數據層上的這種處理方式,其實也是因Scratch軟件本身特點所限制的

upload/article/images/2020-12-11/6e8830b3ba38a0c2c484108b4ea17a57.jpg

碩碩

是的,既需要滿足“按照角色進行積木編寫”的功能,又需要滿足“漂亮的視覺呈現”,在數據層上自然會有根據整體軟件的定位做出一定的調整

upload/article/images/2020-12-11/9b176f77de0be7e5f0f59cb2e8bcb112.jpg

利利

其實任何一門語言都不是萬能的,作為編程語言的使用者,要做的是了解這門語言,并將這門語言的優(yōu)勢和長處發(fā)揮到極致

upload/article/images/2020-12-11/6e8830b3ba38a0c2c484108b4ea17a57.jpg

優(yōu)化層

在Scratch中,目前我們還沒有提及的,就是“自制積木”了,這個模塊屬于優(yōu)化層積木,對應于其他語言當中的函數。

自制積木的作用,在于將一個角色當中通用功能“打包”起來,之后多次使用,增強積木組的復用性,提升積木組的擴展性。

優(yōu)化層 - 自制積木 - 通過參數控制具體功能

https://cdn.china-scratch.com/timg/191011/140933EG-22.jpg

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

upload/article/images/2020-12-11/1df28d8a631a2068eba0c5fb54e4db1a.jpg

路人甲

在Scratch當中,有沒有能夠應用于所有角色的“自制積木”(方法 / 函數)?

利利

沒有

upload/article/images/2020-12-11/6e8830b3ba38a0c2c484108b4ea17a57.jpgupload/article/images/2020-12-11/1df28d8a631a2068eba0c5fb54e4db1a.jpg

路人甲

為何自制積木只能應用于當前的角色呢?

利利

在上一篇文章當中我們提及到,Scratch當中存在對象、方法、屬性,每個角色都是一個對象,自制積木,是定義在這個角色當中的,因此,自制積木是相應角色的方法。

upload/article/images/2020-12-11/6e8830b3ba38a0c2c484108b4ea17a57.jpg

文章傳送門:學好Scratch必知的二三事,別樣的Scratch積木分類(上)

簡言之,我們作為Scratch作品的編寫者,無權操作底層功能函數(方法),只能夠為角色 / 背景這些對象添加一些方法。

小貼士

沒有繼承功能的Scratch

在Scratch當中,角色和角色之間并沒有“繼承”關系。

當作品中,有多個角色存在相似功能時,雖然積木類似,但是都需要單獨編寫。

編寫時自然會比較“累”,好在我們還有“復制大法”……

總結 ~ ~ ~!

已經講解完Scratch所有積木的分類了,我們一起來回顧一下!

● 基礎效果類積木 —— 讓角色的屬性(樣式)能夠發(fā)生簡單的變化

●?基礎邏輯類積木 —— 對角色進行狀態(tài)檢測和控制,并根據角色狀態(tài)執(zhí)行不同的功能

●?優(yōu)化邏輯類積木 —— 使用更少的積木,對角色更精確更精細地檢測與控制

●?角色邏輯類積木 —— 實現角色與角色/背景間的邏輯與交互

●?數據類積木 —— 進行數據記錄,增強作品的可玩性

●?優(yōu)化類積木 —— 減少角色的積木量,增強積木擴展性

在了解Scratch積木分類之后,什么樣的學習順序更有利于我們又快又好的掌握Scratch呢?學習Scratch又有哪些注意事項呢?后面我們慢慢來談~

教育的路上,不忘初心!

聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯(lián)系刪除

預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 红安县| 当阳市| 曲阜市| 白玉县| 瑞安市| 普定县| 商洛市| 宁强县| 沅陵县| 二连浩特市| 菏泽市| 怀柔区| 萨嘎县| 嘉兴市| 青海省| 奉新县| 南岸区| 安平县| 西平县| 甘肃省| 彭阳县| 阿拉善右旗| 鱼台县| 赣州市| 始兴县| 莱芜市| 蕲春县| 胶南市| 龙口市| 宣化县| 奇台县| 资阳市| 绥棱县| 华池县| 洪雅县| 沽源县| 东阿县| 阳春市| 芦山县| 宜兰市| 万安县|