Scratch編程27:如何創建函數之自製積木

2020-12-17 和小po一起學編程

#少兒編程#

隨著我們在Scratch上編寫的程序越來越複雜,積木會使用的越來越多。有時候,為了代碼的條理性、簡潔性和可讀性,我們需要創建自己的積木。

技能1:創建自製積木

① 在自製積木模塊裡,點擊「製作新的積木」按鈕(圖1)。

圖1

② 然後會彈出一個創建新積木的對話框(圖2)。紅框內是給要創建的積木起個名字,這裡我給新積木命名為「跳舞」。

藍框內的三個選項是可以作為輸入項添加到積木裡的。當然對於簡單的積木,這些選項是不需要的,只有創建更高級的積木時,才會用到這三個選項。

圖2

③ 點擊「完成」按鈕,在自製積木下面會有剛剛創建的「跳舞」積木(圖3自製積木區域紅色箭頭指向),同時在代碼區域會有「定義跳舞」積木(圖3代碼區域紅色箭頭指向)。

圖3

④ 在代碼區的「定義跳舞」積木之後添加積木,來實現我們要做的事情

技能2:刪除自製積木

如果我們不需要這個自製的積木,我們也可以把它刪掉。滑鼠按住代碼區域的「定義跳舞」積木(圖4),並拖動到左邊自製積木項那邊,鬆開滑鼠,自製積木就刪掉了。

圖4

【練習】

我們先來創建一個簡單的積木,看看自製積木的創建過程以及如何使用。

1、任務要求

任務角色:使用Ballerina角色

任務背景:使用默認的背景

任務內容:製作「跳舞」積木,需要滿足如下要求:

通過切換造型實現跳舞使用計時器來控制跳舞的時間2、編程實現

第一步:刪除默認角色「小貓」,然後添加角色Ballerina(圖5

圖5

第二步:將角色Ballerina設為當前編程對象(圖6

點擊角色設置區的Ballerina角色,將該角色設為當前編程對象。

圖6

代碼如圖7:

圖7

藍色框內的代碼是定義「跳舞」積木所要完成的任務,首積木紅色的「定義跳舞」積木後面跟的就是完成跳舞所要做的所有步驟。

① 首先初始化造型,這裡我把ballerina-a設為第一個造型;

② 然後初始化計時器,將計時器設為0。Scratch中的「計時器」積木和我們生活中的計時器一樣,按秒計數;

③ 切換下一個造型,保持0.3秒;

④ 重複執行③的動作,直到計時器超過4秒。

藍色框內的代碼是定義「跳舞」積木,那麼如何執行呢?紅色代碼框就是調用我們自己創建的「跳舞」。當點擊「運行程序」圖標,就會執行「跳舞」積木定義的所有的步驟。

自製積木的使用和Scratch的積木一樣,用滑鼠按住自製積木區的「跳舞」積木不放,然後拖到代碼區就可以了,如圖8。

圖8

第三步:保存程序

點擊「運行程序」,執行結果如圖9

圖9

自製積木的好處

Scratch的自製積木是一個很重要的概念,在其它程序語言裡,這叫函數或者過程。

自製積木就是把實現某個功能的一組積木定義成一個積木(比如上面那個例子的「跳舞」積木),這樣在項目程序裡的任何地方,我們如果需要執行那個功能,就只需要使用自定義的那塊積木就可以了,而不需要使用實現那個功能的一組積木。

就如同上面例子裡,不論我們怎麼多次使用「跳舞」積木,它都涵蓋了它所屬的所有積木。使用了「跳舞」積木,就等於使用了它所屬的那一組積木,而不必每次都複製那一堆積木。

這在複雜的程序裡非常有用,它可以簡化代碼,保持代碼的邏輯性。

不過這篇我們只是創建了一個很簡單的自製積木,但這個積木的使用範圍還不夠廣,它固定住了流程和跳舞的時間。我們可以通過在積木裡添加參數使得我們的自製積木變的更加靈活,使用範圍更加廣,下一篇我就會給大家介紹如何添加參數。

原創不易,請勿抄襲。歡迎大家關注我,和我多交流,如果你喜歡,請轉贊評三連,謝謝。

相關焦點

  • Scratch編程28:創建帶參數的函數之自製積木選項
    #上一篇我們說了如何創建自製積木,不過那篇創建的積木比較簡單,它很多條件都是定死的,所以使用起來不靈活。那麼這一篇我們就來說一說如何創建更靈活的積木。圖1是上一篇我們定義的「跳舞」積木,但是這個積木跳舞的步驟和時間全都定死的,所以使用起來不靈活。比如說程序裡跳舞的時間為4秒,那如果我在一個程序裡,一會需要跳4秒,一會需要跳10秒呢?按照圖1的創建方法,那我們就要為不同的跳舞時間創建不同的跳舞積木,這樣很麻煩。
  • 五顏六色的積木塊?最適合孩子的程式語言——Scratch
    Scratch用圖形化的呈現和拖拽方式來完成編程,也是一種編寫程序的方式。 孩子通過拖動指令塊,可以向計算機發出指令,也可以藉助特定的功能來創建算法或指令以完成某個任務,實現程序的編寫。
  • Scratch創意編程 磚塊消消樂小遊戲設計
    案例演示案例分析角色:球、板、磚塊背景:wall1難點分析本案例的難點對小朋友們來說可以分為兩個:一是如何在舞臺上產生一定數量的磚塊,比如有30個,難道我們要添加30個磚塊角色嗎?另一個是碰到磚塊怎麼讓小球反彈,因為我們Scratch裡面只有碰到邊緣反彈的積木並沒有碰到角色反彈的積木?
  • Scratch、Python學哪個?兒童編程怎麼學?全面解析編程(上)
    如果您的小孩準備學習編程或者已經在學編程,建議您認真看完該系列文章,一定會對孩子學習編程有所幫助。本系列文共分為三部分,第一部分講編程是什麼?編程到底學什麼?第二部分講為什麼要學習編程?學習編程,孩子能收穫什麼?第三部分講到底要怎麼學編程?有哪些需要注意的問題。
  • Scratch是什麼 少兒編程為什麼選擇Scratch-七考網
    而且作為可視化的程式語言,Scratch還帶有相應圖形界面,可以說用Scratch編程的過程中充滿著趣味。目前,Scratch已經被翻成50多種語言,在40多個國家和地區的教育領域中廣泛使用,惠及全球超過1500萬名孩子,如哈佛大學、加州大學伯克利分校等頂級名校也開發了Scratch的相關項目。Scratch不僅是程式語言,還是創作工具更是表達工具。
  • 函數式編程那些事兒
    函數式編程是一種編程範式,在其中它試圖將每個函數都綁定到純數學函數中。這是一種聲明式的編程風格,著重於解決什麼而不是如何解決。Clojure,Common Lisp,Erlang,Haskell和Scala是遵循函數式編程方法的一些著名程式語言。
  • 函數式編程很難懂?其實真心很簡單
    這個用Java代碼如何表現出來?1.最常規代碼①創建一個劉小愛類實現LiveRoom接口,劉小愛既然能直播,肯定是實現了直播接口的。直播間叫劉小愛也好,叫劉大愛也罷,哪怕是叫劉老愛都無關緊要,我是要看直播的內容,那我完全可以不用創建劉小愛類。
  • 小碼王:scratch少兒編程入門怎麼學習?2個方法要記住
    scratch少兒編程入門怎麼學習?不少家長對孩子scratch編程學習比較重視,對於孩子scratch編程怎樣入門沒有一些好的正確的學習方法,那麼在這裡,也給大家做一個分享!1.根據孩子的特點教學編程入門相信很多爸媽都不太理解scratch少兒編程,所以在沒有很好的教學經驗,不知道如何下手,作為一個過來人建議大家可以去找關於scratch少兒編程的書籍閱讀視頻,看看scratch少兒編程入門學習視頻課程,其中有一個方面就是說如何按照孩子的興趣教學。
  • Python並發編程很簡單,一文搞清如何使用構造器創建線程
    上次已經和大家探討了關於進程和線程的區別和聯繫相關的東東,今天呢,咱們再次回到Python哦,和大家一起聊聊如何進行Python並發編程哦,大家也可以理解為如何在Python中進行多線程編程哦!好啦,廢話少說,咱們就開始吧!
  • 輕鬆玩轉函數式編程
    於是我抽時間捋了捋,將平時工作中用到的函數式編程案例和思想整理了出來,相信閱讀本文後,大家都能快速上手函數式編程。 函數式編程目前使用範圍非常廣,常用的框架,語言幾乎都能看到它的身影。 前端框架:react、vue 的 hooks 用法。
  • 數學與編程的關係?機器人編程和Scratch編程衝突嗎?
    」那麼如何幫助孩子們建立數學興趣呢?我們需要一種學習工具,這種工具既能夠把抽象枯燥的公式變得有趣,又能形象化展現解決思路與可操作性,還能與生活中的各類小趣味小常識結合起來,讓孩子不再把學數學當做一件痛苦的事情。這種一舉多得的學習工具和方式——就是編程。
  • Scratch編程技巧之「停止腳本執行」積木用法
    在實際應用中,我們不僅要關注這個積木各個命令本身,還要觀察此積木的形狀。細心的小程式設計師會注意到,在情形(1)和(2)時,這個積木底部是平面的,意即此時後面不能再接續其他積木代碼了!但是,在情形(3)時,這個積木底部變成凹形,意即此時後面可以再接續其他積木代碼!
  • Scratch編程19:如何用畫筆積木畫複雜的圖案
    #上一篇我們介紹了Scratch的畫筆模塊,一起研究了如何導入畫筆模塊,以及畫筆模塊的積木。這次除了上一篇提到的幾個積木外,還使用了「將筆的顏色增加10」這個積木(圖4紅框內的積木)。圖4對於程式語言,顏色其實是用數字作為代號的,只不過為了方便,作為圖形化編程軟體,Scratch可以直接顯示顏色,這樣可以讓編程者更直觀的選擇顏色(圖5)。
  • 從Python到Haskell:程式設計師為何與函數式編程「墜入愛河」?
    與之相反,面向對象的編程則是有一組相對固定的函數,而用戶主要是修改或添加新變量。由於函數式編程的特性,它非常適合完成諸如數據分析和機器學習之類的需求任務。但是這並不意味著用戶要告別面向對象的編程,轉而完全使用函數式編程。但用戶需要了解其基本原理,以便在適當的時候使用它們以發揮優勢。
  • 知識分享之函數式編程的簡單介紹
    各位小夥伴們大家好,好久不見,這次小編要分享的一個知識是有關於函數式編程的。函數式編程是近年來比較熱門的一個話題,很多人都在談FunctionalProgramming,函數式編程有如下特點:函數即為數據,第一等公民。
  • 少兒編程教育scratch軟體python軟體找不到下載地址,原因看這裡
    在進行少兒編程教育的時候,必然需要下載安裝少兒編程教育軟體,對此很多家長很頭疼,浪費了半天時間,還是沒有找到想要的軟體,今天就來給大家說一說建議。英文界面:點擊翻譯之後的狀態:scratch官網打不開,網絡找到的都是下載亂七八糟的東西從網絡上看到,好像從2020年的8月以後,scratch官方網站就打不開了,那麼如何找到scratch呢?
  • 少兒編程老師難找,3個免費編程網站助你自學
    孩子天天「宅」家如何自己學習?小編在親自測試後,給大家推薦3個免費的編程學習網站,讓孩子在家就能高效自學少兒編程,趕緊試一試吧。大多數國內做少兒編程的機構都採用了Scratch圖形化編程進行教學,可以創作動畫、遊戲和交互藝術。scratch官網的作品展示非常豐富,有來自全世界孩子們的編程作品。由於是國外的網址,加載會比較慢,建議直接下載Scratch3.0的離線客戶端,軟體運行穩定,還可連接樂高教育類積木編程,可玩性非常高。
  • 寫Python 代碼不可不知的函數式編程技術
    近來,越來越多人使用函數式編程(functional programming)。因此,很多傳統的命令式語言(如 Java 和 Python)開始支持函數式編程技術。本文對 Python 中的函數式編程技術進行了簡單的入門介紹。本文適合對函數式編程有基本了解的讀者。
  • 大數據入門:Scala函數式編程
    提到Scala,首先會提到的一個概念,就是函數式編程,這也是Scala語言區別與其他程式語言的典型特徵。Scala是一門多範式(multi-paradigm)的程式語言,設計初衷是要集成面向對象編程和函數式編程的各種特性。
  • 從Scratch到Python
    很多學校或者機構陸續開設了Scratch課程,通過Scratch圖形編程入門編程,創作豐富的作品。但是Scratch對於簡單的圖形編程入門是很好的工具,涉及到編程中關於變量,函數等等特性,Scratch是無法體現的,所以需要另外選擇一門程式語言來保證少兒編程的持續性。