Gandi 3.0文档
官网 打开编辑器
文档/积木工作区

工作区里的其它几件事

积木怎么写、怎么找,别的文档已经讲过。这一篇收录工作区上剩下的几件事:打开大作品时的 加载进度、把写好的一段积木保存起来复用、把脚本复制给别的角色,以及缩放平移和新建变量 时的作用域选择。

打开大作品时的加载进度#

一个两万块积木的作品,如果一次性全部构建出来,编辑器会卡住好几秒,期间没有任何绘制, 也无法判断还要等多久。因此积木是分批放入的,同时显示进度。

正在加载积木

工作区左下角那条显示的是积木块数,不是脚本数。脚本之间的规模差距太大(这一段三块, 下一段五千块),按脚本数报进度会迅速冲到九成然后停住不动。

这一条只在当前页超过 500 块时出现;一帧就装完的角色不需要闪一下进度条。

特别长的脚本会先排队#

超过 600 块的单条脚本是另一种情况:放入它就会造成一次长停顿。所以它被单独排队,等 工作区空闲下来(大约 0.7 秒没有操作)再放入。在那之前,它应在的位置上显示一张卡片:

长脚本的等待卡片
  • 还没轮到它:「长脚本待放置 N 块」
  • 正在放:「正在放置长脚本… N 块」

卡片固定在这段脚本自身的坐标上,跟随工作区一起滚动缩放。滚动到它附近等于优先放入: 当前正在查看的那一段会被提到队首;直接点卡片效果相同。

正在拖动积木时不放入任何积木,避免打断操作。

右键替换成同类积木#

右键工作区里的积木,选择「替换为 …」即可在兼容的同类积木之间切换,例如 > 换成 < 或 =、加法换成减法、向右旋转换成向左旋转、说话换成思考。菜单只列出已支持的无损替换组, 不会任意把不同形状或不同参数数量的积木互换。

原有输入值、嵌入的报告块、影子默认值、前后连接、注释和代码框归属会保留;整次替换算一步撤销。 积木栏里的模板、影子块、锁定的积木或代码框,以及只读工作区不提供此操作。

把一段积木存进资源库#

写好的一段脚本可以保存起来,以后从资源库里拖出来复用。右键那段积木的任意一块:

积木的右键菜单

选「添加到资源库」,起个名字:

起名

保存的是这一块以及它下面和里面的全部积木,所以右键最上面那块即保存整段。名字默认 填写首块积木上的文字。

保存之后它出现在「资源」面板的片段里:

资源库里的片段

条目上写着有几块积木,右边详情里渲染的是真实积木,并显示这段有多大、是否被使用过。

拿回来用#

三条路径,任选其一:

怎么做 结果
把片段从资源库拖进工作区 落在松手的位置
详情里的「放进工作区」 放进当前这个工作区
详情里的「放进角色…」 选一个角色放进去,那个角色的工作区不需要打开
拖回工作区

左边是资源库里的「转圈跑」,右边是拖进工作区之后的样子。

也可以一次选中多个条目一起拖动,其中非片段的条目(图片、声音)会被忽略。片段记录了 自己用到哪些扩展,放入前缺少的扩展会先自动安装。

自制积木的定义无法保存(会提示「自制积木的定义还不能存成片段」),因为定义带有一个 在角色内必须唯一的名字,原样放回会产生两个同名定义。调用块不受限制。

把一段积木导出成图片#

右键那段积木,菜单底下有「导出积木为 SVG」和「导出积木为 PNG」。导出的是这一块以及 它下面和里面的全部积木,和存片段一样。文件名取首块积木上的文字。

两种格式的区别只有一处,但很关键:

格式 能做什么
SVG 图里另外带着这段积木的原始数据
PNG 只有画面

所以把导出的 SVG 文件拖回工作区,那段积木会原样长出来,落在松手的位置。一次拖好几个 文件也可以,它们依次落下、互相错开一点。拖进去的那段和片段走同一条路:缺少的扩展先装、 撞名的自制积木定义就地改名、整段算一次撤销。

不是本编辑器导出的 SVG 拖进来不会有反应(会提示「这张 SVG 里没有积木」)。

SVG 直接用浏览器打开就能看到那块积木 —— 它是一份独立的图,字体、颜色都写在文件里,不 依赖编辑器。

把脚本复制给别的角色#

把一段积木从工作区里拖出来,在角色列表里的另一个角色上松手,那个角色就得到一份:

拖到角色行上

指针所在的那一行会高亮,表示松手后会落在哪里。

  • 是复制,不是移动:原来那一份留在原地。
  • 舞台那一行同样可以接收。
  • 拖回角色自己那一行无效,脚本本来就在那里。
  • 复制过去的脚本落在那个角色最后打开的那一页上(从未打开过时落在它的第一页)。

缩放和平移#

操作 结果
滚轮 上下滚动工作区
Shift + 滚轮 左右滚动
Ctrl + 滚轮 以指针为中心缩放
拖工作区空白处 平移
触屏两根手指 捏合缩放 + 一起拖平移(一根手指仍然是拖积木)

右下角还有三颗按钮:

缩放按钮

从上到下是放大、缩小、复位;复位把缩放比例调回初始档位,并把脚本居中。

初始比例是 0.675,可以缩到 0.3、放大到 3 倍。缩放没有键盘快捷键(目前可改键位的 只有布局切换和全局搜索那几条)。

新建变量时,先确定它的作用域#

完整说明见变量与列表:改名、删除、云变量的实际支持情况、 多场景下值的归属。这里只说新建时的作用域选择。

在积木栏里点「建立一个变量」或「建立一个列表」,除了命名,还要选择它的可见范围:

新建变量
选项 意思
全局变量 所有场景共用
仅本场景 只在这个场景里有(默认)
仅本角色 只有这个角色能用

左边那三个小图是同一套记号:上面的容器表示范围,下面那条表示这份值属于谁。 「仅本场景」是一排屏里只有第一块底下有条,「仅本角色」是一排角色卡片里只有第一个底下有条, 换场景和换角色都看不见它,两张图体现的是同一种对称。全局那一档换成地球,因为「两块屏 两条」和「两块屏一条」在这个尺寸下难以分辨。

几点说明:

  • 上面那块橙色的就是即将建立的那块积木,名字直接写在它身上。
  • 在舞台上「仅本角色」是灰的,因为舞台上的变量只能是全局的。
  • 重命名变量时没有这一段(改名不改范围);新建广播也没有。
  • 名字重复时当场提示(「已经有一个叫「得分」的变量了」),不会等到点确定。

相关#

  • 积木页 —— 复制过去的脚本落在哪一页
  • 多编辑目标 —— 跨工作区拖动是另一回事:那是移动,不是复制
  • 积木栏 —— 「建立一个变量」按钮的位置