首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Scratch编程 事件积木

事件(event)积木的“事件”二字远不如运动、外观、声音等容易理解。它在编程领域是个重要的常见概念,常见到根本不用给出一个具体的概念表述,程序员们就都理解它的含义、它的作用。对于处在入门阶段的大家,我还是给一段描述,以便大家理解。

事件积木是作用是触发程序运行。这类积木会检测鼠标点击、键盘按下等类似的用户交互或程序内部交互,当这些事件发生后,积木下面的程序开始运行。所以,事件积木一定是某段程序的第一块积木,是程序的起始点。事件积木就像电器的开关。

之前文章中的程序演示,我们都是直接点击右侧程序区的第一积木来触发程序运行的,这样的做法在程序简单、短小时看不出什么问题,但是当程序复杂,比如多个角色、多段代码同时运行时,这样就不行了。所以,为了让大家养成规范编程的习惯,后续的程序实例,我们都会通过事件积木来触发程序运行。

01 最常用的事件积木

这三个积木的作用分别是

1. 当舞台右上角旗子被点击时,该积木被触发

2. 当键盘某个按键被按下时,该积木被触发

3. 当当前的角色被点击时,该积木被触发

其中,第二个功能更丰富一些,它有如下的下拉选项可以使用:空格键、四个方向键、0~9这10个数字键、a~z的字母键,还有任意键,也就是键盘上随便点击一个按钮就能触发这个积木。另外,需要特别注意的是,a~z字母键是不区分大小写,专业术语是“大小写不敏感”,意思是,如果下拉选择了b,那么点击小写b和大写B都会触发这个积木。

下面一个示例演示了以上三个积木:

02 当背景切换积木

有时背景不同角色会有相应的表现,此时这个积木就派上了用处。正如下面的例子,在沙漠背景下,小猫会说热;在冰雪背景下,小猫会说冷。

03 当xx>n积木

这个积木的功能很容易理解,比如,上图是说“当响度的数值大于10的时候,这个积木会被触发”,因为简单,所以不再举例演示。

积木的下拉菜单中有3个选项,分别是:响度、计时器、视频移动。

响度、计时器、视频移动都是侦测类积木里的内容,请查阅文章

《Scratch侦测积木》

了解详情。

04 广播积木

我们已经知道,Scratch可以新增多个角色,每个角色可以独立编码完成属于自己的事情(逻辑)。可是,不同角色之间怎么才能互相合作完成更负责的事情呢,有不同角色之间通讯的方法吗?

那么就要说到“广播”积木了。

这里的“广播”二字和现实世界中的意思、作用等都很相似。

举个现实生活中的小场景,广播电台向大众“发送”相同的广播信息,比如天气预报快要下雨了,不同的人“接收”到广播信息可以去做不同的事情,比如,老妈去收衣服,老爸打消了去洗车的打算,而小宝无动于衷(因为他觉得这个下雨的广播和自己没关系)。

Scratch中的广播也是这样,举个小例子,我们编写一个小游戏,其中有两个角色,一个负责开始时候的倒计时3、2、1,一个在倒计时完成后开始移动。那么,第一个角色就可以在321结束后发送广播“倒计时结束”,第二个角色则是接收广播开始左右移动。需要注意的是,第二个角色只会在收到广播的内容是“倒计时结束”才移动,如果广播内容是“游戏结束”,那么它是不会移动的。

Scratch提供了2个发送广播的积木和1个接收广播的积木,然而,它们都支持新增消息(也就是,广播内容)。

1. 发送广播:

[广播并等待]:发送广播,并且等待所有接收广播的角色执行完“当接收到xx”代码块后,才能继续执行后续的积木。就好像,我不光告诉你们“要下雨了”,还要看着甲收完衣服、乙关好门窗,才能安心得去做自己的事情。

[广播]:发送广播,然后立刻继续执行自己后续的积木。意思是,我告诉你们“要下雨了”就好,你们要怎么做,我可一点不关系,我要去做自己的事情了。

下面演示如何新增一个广播消息:

2. 接收广播:

(当接收到]积木和(当旗子被点击]很像,都是一段代码的起始位置。

广播积木相关的编码实战演示,可以查阅《Scratch实例6|小白兔捡萝卜,第2版》。

tag:#Scratch编程、#少儿编程、#儿童编程、#趣味编程、#青少年编程、#软件编程

例行备注:微信限制已发布文章的修改,欲查看最近更新后的文章可以通过公众号底部的菜单。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181228G1CRYT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券