第四章 第一節 Scratch3.0 消息的廣播與接收


本章主要介紹“分而治之”的編程方式。通常情況下,程序的整體功能並非全部編寫在一段腳本中,而是把整體功能划分為多個部分,使用本章介紹的過程實現每個部分的功能,最后將各個過程合並在一起。合理使用過程能讓程序更加清晰,更容易測試和調試。
第四章的主要內容如下:
使用消息廣播來協調各個角色間的行為
使用廣播機制實現過程
學習Scratch3.0中的“自制能塊”
學習結構化程序設計


本章之前有不少程序僅包含一個角色,而包含多個角色更常見。例如,動畫故事就需要諸多不同的人物和背景。

那么如何才能讓眾多角色的腳本協調一致地運行呢?

答案是:使用消息廣播機制。

在事件指令組中,有一個指令叫當接收到(消息1)。對應地,有兩個指令:廣播(消息1)、廣播(消息1)並等待


廣播-消息機制就是編程中的全局事件。當一個消息被廣播時,所有角色(包含自身)都會接收到該消息。只要一個角色有該消息的接收腳本,即可接收消息並處理。那么,兩種廣播方式有什么區別呢?

廣播(消息1):向所有角色(包括自已)發送一個消息。發送完后,會立即繼續向下執行代碼。
廣播(消息1)並等待:向所有角色(包括自已)發送一個消息。發送完后,會等到所有接收消息的代碼執行完成后才繼續向下執行。


本節課通過運動會前的點名報數來體驗廣播與消息指令的神奇之處。這里重點體驗“廣播(消息1)並等待”的功能。


利用廣播與消息指令,可以實現不同角色之間的交互。然而,廣播只帶有一個消息名稱,是不帶參數的。要傳參,需要使用自制積木,即過程(專業叫法:函數)。


首先准備好運動會“場地”和“運動員”:

作為本次運動會的總指揮小貓,組織大家報數,等大家報完數后反饋給大家共有多少動物參加本次比賽。變量number用來記錄報數。初始化為0。

“運動員”們接收到開始報數的指令后,開始報數。每報一個,number增加1。

完成編碼后,執行效果如下。

游戲項目:大家來找茬


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM