第四章 第一节 Scratch3.0 消息的广播与接收

本章主要介绍“分而治之”的编程方式。通常情况下,程序的整体功能并非全部编写在一段脚本中,而是把整体功能划分为多个部分,使用本章介绍的过程实现每个部分的功能,最后将各个过程合并在一起。合理使用过程能让程序更加清晰,更容易测试和调试。
第四章的主要内容如下:
使用消息广播来协调各个角色间的行为
使用广播机制实现过程
学习Scratch3.0中的“自制能块”
学习结构化程序设计


本章之前有不少程序仅包含一个角色,而包含多个角色更常见。例如,动画故事就需要诸多不同的人物和背景。

那么如何才能让众多角色的脚本协调一致地运行呢?

答案是:使用消息广播机制。

在事件指令组中,有一个指令叫当接收到(消息1)。对应地,有两个指令:广播(消息1)、广播(消息1)并等待


广播-消息机制就是编程中的全局事件。当一个消息被广播时,所有角色(包含自身)都会接收到该消息。只要一个角色有该消息的接收脚本,即可接收消息并处理。那么,两种广播方式有什么区别呢?

广播(消息1):向所有角色(包括自已)发送一个消息。发送完后,会立即继续向下执行代码。
广播(消息1)并等待:向所有角色(包括自已)发送一个消息。发送完后,会等到所有接收消息的代码执行完成后才继续向下执行。


本节课通过运动会前的点名报数来体验广播与消息指令的神奇之处。这里重点体验“广播(消息1)并等待”的功能。


利用广播与消息指令,可以实现不同角色之间的交互。然而,广播只带有一个消息名称,是不带参数的。要传参,需要使用自制积木,即过程(专业叫法:函数)。


首先准备好运动会“场地”和“运动员”:

作为本次运动会的总指挥小猫,组织大家报数,等大家报完数后反馈给大家共有多少动物参加本次比赛。变量number用来记录报数。初始化为0。

“运动员”们接收到开始报数的指令后,开始报数。每报一个,number增加1。

完成编码后,执行效果如下。

游戏项目:大家来找茬

posted @ 2020-06-27 12:13  有间学堂  阅读(5599)  评论(0编辑  收藏  举报