学习目标
§ 探索:角色之间怎样通过广播进行协作
§解释:两个角色之间怎样发送和接收消息
课程准备
本节课基于Multiple Sprites.sb2项目。在使用该项目文件之前,先备份文件。
课程内容
使用3-Multiple Sprites项目并选择Nano,构建代码使他有如下行为:当Nano被点击时,Tera将通过往上跳并缓慢下降来回应。
§ 从Events组下往代码区的空白处拖入一个broadcast...指令,在这个指令的下拉列表里选择new message,在弹出的对话框中输入Jump!——这个要被广播出去的消息。点击这个指令,使Nano广播他的消息——但是什么也没发生(为什么呢?)
§ 选择Tera并让他监听Nano的消息:从Events组下拖入一个when I receive Jump!指令到代码区,并把该指令添加到Tera的回应处理代码的上面。
§ 结合Nano的穿越能力,使他被点击时,他将先穿越,然后广播Jump!消息。
再选择Giga,她要和其他角色成为朋友:当她被点击时,她会广播make friends的消息,然后Tera会回应
§ 从Events组下往代码区的空白处拖入一个broadcast...指令,把其中的message改为make friends,并添加一个when this sprite clicked指令。
§ 选择Tera并让他监听Giga的消息:从Events组下拖入一个when i receive make friends指令到代码区,并从Looks组下添加下列指令进行回应:say hello, I am Tera! for 2 secs.
为Giga和Tera实现如下功能扩展
§ 当Giga被点击时,她会走向Tera并说 hello, I am Giga. And you? for 2 secs. 然后广播她的消息。改变Tera的响应,使得她也往上跳并缓慢下降,然后说Hello!I am Tera!
§ 为Nano构建代码,使得Giga走向他时,他也可以做出和Tera一样的相应。
练习
基于消息处理流程,为Nano,Giga,Tera和Pico设计发送消息和接收消息进行处理的功能。设计前要列出消息处理列表,格式为:发送者 ---> 消息 ---> 接收者 ---> 处理
注意
1. 广播没有明确的收信人,广播出去的消息和在大庭广众的环境里大声喊叫出来一样。
2. 不管哪个角色要监听一个特定的消息,这个角色都得有代码和when I receive...指令连接在一起,而且when I receive...指令的参数必须选择要监听的消息。
领取专属 10元无门槛券
私享最新 技术干货