本章主要介紹“分而治之”的編程方式。通常情況下,程序的整體功能並非全部編寫在一段腳本中,而是把整體功能划分為多個部分,使用本章介紹的過程實現每個部分的功能,最后將各個過程合並在一起。合理使用過程能讓程序更加清晰,更容易測試和調試。
第四章的主要內容如下:
使用消息廣播來協調各個角色間的行為
使用廣播機制實現過程
學習Scratch3.0中的“自制能塊”
學習結構化程序設計
本章之前有不少程序僅包含一個角色,而包含多個角色更常見。例如,動畫故事就需要諸多不同的人物和背景。
那么如何才能讓眾多角色的腳本協調一致地運行呢?
答案是:使用消息廣播機制。
在事件指令組中,有一個指令叫當接收到(消息1)。對應地,有兩個指令:廣播(消息1)、廣播(消息1)並等待。
廣播-消息機制就是編程中的全局事件。當一個消息被廣播時,所有角色(包含自身)都會接收到該消息。只要一個角色有該消息的接收腳本,即可接收消息並處理。那么,兩種廣播方式有什么區別呢?
廣播(消息1):向所有角色(包括自已)發送一個消息。發送完后,會立即繼續向下執行代碼。
廣播(消息1)並等待:向所有角色(包括自已)發送一個消息。發送完后,會等到所有接收消息的代碼執行完成后才繼續向下執行。
本節課通過運動會前的點名報數來體驗廣播與消息指令的神奇之處。這里重點體驗“廣播(消息1)並等待”的功能。
利用廣播與消息指令,可以實現不同角色之間的交互。然而,廣播只帶有一個消息名稱,是不帶參數的。要傳參,需要使用自制積木,即過程(專業叫法:函數)。
首先准備好運動會“場地”和“運動員”:
作為本次運動會的總指揮小貓,組織大家報數,等大家報完數后反饋給大家共有多少動物參加本次比賽。變量number用來記錄報數。初始化為0。
“運動員”們接收到開始報數的指令后,開始報數。每報一個,number增加1。
完成編碼后,執行效果如下。
游戲項目:大家來找茬