返回值积木、全局积木
在创建自制积木时,相信你注意到了这两个选项:返回值积木、全局积木
他们有什么用呢?下面就来向你介绍~
返回值积木:即自定义圆形积木,可以像其他圆形积木一样返回一个数值;
全局积木:即所有角色都可以使用的全局自定义积木,需要在“模块”角色中定义。
返回值积木
勾选“返回值积木”后,发现积木形状变成圆形了。同时,左边积木栏多了个“返回”积木。
相信你已经猜到了。“返回值积木”就是运行后,会返回一个值的自制积木。
例如,在前面的教程中,我们通过变量来记录计算结果:
而如果有了返回值,我们可以省去这个变量,直接返回计算结果:
类似的,下面的积木也可以改成返回值积木:
注:由于还无法自定义棱形积木(布尔值积木),可以用如下写法来暂时代替自定义棱形:
也可以用简单地用 1/0 来表示 true/false(我个人喜欢这么写):
此外,布尔值有一个特性,就是在计算时,true/false 会当成 1/0 进行计算,例如:
1<2 为 true,则 (1<2)+1 = 1+1 = 2
2<1 为 false,则 (2<1)+1 = 0+1 = 1
因此,也可以通过下面写法,将布尔值的 true 转为 1,false 转为 0:
根据布尔值的这个特性,我们可以将下图左边的移动代码节省成右边的样子:
其中上面的“d - a”积木,按下 d 时返回 1;按下 a 时返回 -1;同时按下时返回0。
上面的"w - s"积木,按下 w 时返回 1;按下 s 时返回 -1;同时按下时返回0。
全局积木
一般的自制积木只能在一个角色中使用。而全局积木,顾名思义,就是所有角色都能使用的自制积木。
你可能会发现,在一般角色中无法创建全局积木(选项是灰色):
这是因为,全局积木只能在“模块”角色中创建。首先在右下角添加“模块”:
(“模块”是一种特殊角色。它是一个空壳角色,不能被显示、移动、克隆,仅仅用于容纳全局积木。)
例如,我们想制作一些和数学功能相关的全局积木,就可以新建一个模块,命名为“数学”:
创建好“数学”模块后,我们就可以在模块中创建全局积木了。创建的全局积木会自动带上“模块名.”的前缀(前缀是强制的,无法手动删除)。表示该积木属于这个模块:
例如,我们在“数学”模块中编写了一些全局积木:
在其他角色中,我们也可以看到并使用这些积木。这样,我们就可以将所有角色通用的自制积木做成全局积木:
注意事项
- 目前返回值、全局积木在创建之后,积木类型无法改变;
- 全局模块暂时不支持重命名。
下一节:02 多莉扩展
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=STG303/Arkos/Lec1/02&type=comment"
title="{射击课高级篇-第一课-02}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>