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

少儿编程:Scratch自定义积木

(点击蓝字,轻松关注。查看历史文章,收获最新资讯)

真是很快,我们已经学习到了最后一个积木分类。

各位读者,不知对Scratch的“工具箱”(各种积木)有了多少了解,如果遗忘了一些积木的用法,不用担心,编程就像英语,会在使用中逐渐精进。而且,在公众号菜单中,我们已将相关历史文章归类,形成了类似于Scratch教程的系列文章,方便你查阅。

下面正文要开始啦~

“更多积木”包括两部分:一是,制作自己的积木;二是,Scratch控制外接的硬件。

制作新的积木?

“制作新的积木”是什么意思?它的作用是什么?

Scratch已经为我们提前准备好了许多的积木,比如,计算两个数的加法、移动角色到随机位置等等,功能已经很丰富了。可是,有的时候,在你的程序中会需要很多重复的步骤,但这些步骤没有对应的、单个的一个Scratch积木,那么,为了编程中不出现太多重复的积木,我们可以自己创造一个新的积木,并用这个积木代替之前那一串重复的积木。

这便是“创建新的积木”的一个最常见应用场景。

“创建新的积木”在编程领域中对应的说法是“新建函数”或“新建方法”。

无参数积木 vs 有参数积木

首先我们要说说什么是“无参数积木”,什么是“有参数积木”?答案见下图,无需过多文字解释了吧:

制作无参数积木

为了讲解上的方便,在开始讲解制作无参数积木之前,我们先做一个假设。

【假设】

我们的程序有很多重复的“往右移动10步,然后发出声音”的逻辑,所以,我们为它制作一个新的积木。

点击“更多积木”积木分类,再点击“制作新的积木”,像下图这样给新积木起个名字,然后直接点击【确定】按钮。

此时的新积木还不具备任何功能,所以,以上的步骤,在编程领域中我们通常称作它为“声明一个函数”,或“定义一个函数”,意思是,“我现在只是声明我要制作一个xx名字的新积木,但还不能真的使用哦”。

接下来,我们要“实现”这个积木,使它具有我们所需的功能。需要这样做是很容易理解的,既然是创建自己的积木,那么,它的功能就只能我们自己编写了。

如上,一个无参数的新积木就创建好了。

最后,我们使用这个积木。新积木的使用方法和普通积木其实没有区别,从左侧拖拽到编辑区即可。另外,比较一下不使用新积木的情况,就像下图的右侧,它的编码会很长。

制作有参数积木

再点击“制作新的积木”,接着点击“选项”,展开页面出现了更多的功能项:

图5 新建积木

从上图可以看出,新建的积木可以接受3种类型的参数:数字、字符串、布尔。

这3种参数类型在“运算”积木分类下可以找到例子:

接下来,我们实际操作演示创建有参积木的过程。

新建的过程中,请注意插入参数的先后顺序,如果出错可以通过上方的x按钮删除(示例中,点击确定前的最后一步就是删除),再重新操作。

然后我们实现这个积木,并且使用它。

运行时不刷新屏幕

“图5 新建积木”中有一个勾选项“运行时不刷新屏幕”,创建无参数积木和有参数积木时,都可以勾选它。

可是,“运行时不刷新屏幕”有什么作用呢?

两个积木之间都存在着极短的等待时间,勾选这个选项后,我们新建的这个积木中所包含的积木之间将没有这个等待时间。也就是说,勾选此项将使得我们的自建积木运行得更快速,所以,往往我们需要勾选这个选项。但是,也有特殊的情况,如果这个自定义的积木中包含“播放声音”之类的积木,那么声音的播放可能会失真。

添加扩展

点击“更多积木”积木分类,再点击“添加扩展”,页面中出现3个可选的硬件扩展。

是的,你没有看错,Scratch可以和硬件连接,操纵硬件。

硬件可以作为Scratch程序的输入,也可以作为输出。再简单点说,例如,侦测积木 可以用外接硬件的 代替,运动积木 [移动10步] 也可以被外接硬件的 [转动电机] 替代。

视频中是使用LEGO WeDo 2.0编写的一个和硬件结合的程序。

特别说明!

本号短期没有介绍Scratch与硬件结合编程的计划!!!

因为,在我看来,青少年、儿童学习编程重要的是在于思维训练和编程思想的学习,硬件看起来确实有趣、花哨、可玩性强(如,视频里的发动机,又如,按钮、LED灯,或者机器人等),但硬件更多的是锻炼动手能力以及机械相关的一些知识,对编程思想的帮助少之又少。

硬件在我们所介绍的编程中,只是替代了诸如鼠标移动、键盘点击的积木,还有把角色在屏幕中的移动搬到了在真实地面上移动,硬件没法表示出积木中“如果…那么…”的逻辑、没法表示出积木中算数运算的思想等等,所以,少儿学习编程的重点不在硬件的“硬”上,而是在Scratch积木的“软”上!

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

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券