Gandi 3.0文档
官网 打开编辑器
文档/舞台与运行

舞台上的监视器

监视器是画在舞台上的读数:一个变量现在是几、列表里装了什么、角色的 x 坐标是多少。它不是 积木,也不是编辑器的设置,而是跟着作品走:摆在哪里、是什么样子都存在作品文件里,别人打开 还是那样。

舞台上的四个监视器:滑杆、大字、普通、列表

四种样子一次看全:「分数」是滑杆,「生命」是大字,「角色1: 速度」是普通读数,「背包」是列表。

打开和关掉#

能上舞台的那些报告器积木,在积木栏里前面带一个小方框:变量、列表,还有「x 坐标」「方向」 「音量」「计时器」「按下鼠标?」「鼠标的 x 坐标」这一类。勾上,舞台上就多一个读数。

积木栏里勾上的四个方框

带下拉的报告器,每个选项是一个单独的读数。「按下鼠标 [右键]?」勾上之后把下拉换成左键, 方框变回空的,再勾一次,舞台上就是两个读数:「按下鼠标右键?」和「按下鼠标左键?」。方框 勾没勾,看的是当前选中的那一项。

关掉有三条路,都是同一个开关:

  • 再点一次那个方框;
  • 在监视器上右键选「隐藏」,积木栏里的勾随之取消;
  • 脚本里的「显示变量」「隐藏变量」积木。点一下工作区里那块「隐藏变量」,读数消失,方框 也跟着取消勾选。

角色自己的变量(建的时候选「仅本角色」的那种)读数上带角色名前缀,写成 角色1: 速度; 舞台上的变量不带前缀。

值那块胶囊的颜色跟着积木类别走:动作是蓝的、侦测是青的、变量是橙的。列表监视器的行用列表 自己的橙红(#ff661a),和列表积木一个颜色。

摆放位置#

按住监视器直接拖。位置被限制在舞台之内,拖不出去;一旦拖出舞台就再也拖不回来。松手 时位置按舞台格数记下来(480 × 360 的坐标系,原点在左上角,四舍五入到整数)。

从来没摆过的监视器由编辑器自动排列:从左上角 (5, 5) 开始一个挨一个往下排,一列排满就 往右另起一列。

三种显示样式#

在一个变量监视器上右键:

变量监视器的右键菜单
菜单项 作用
正常显示 名字 + 值,默认
大字显示 只剩一块大号的值,不画名字
滑杆 正常显示底下加一条滑杆,拖它直接改这个变量
改变滑杆范围 见下一节
隐藏 取消这个读数

当前是哪一档,那一条前面画一个勾。菜单和编辑器别处的右键菜单是同一张卡片:上下键移动、 Enter 选中、Esc 或者点到外面关闭。

只有变量有滑杆。 x 坐标、音量、计时器这些是读数,写不回去,所以它们的菜单里只有 「正常显示」「大字显示」「隐藏」三条。列表没有大字显示,也没有滑杆,换来的是导入和导出。

列表监视器右键只有「隐藏」

导入 / 导出是一行一项的纯文本(.txt)。导出按列表名存盘;导入整个换掉列表的内容, 三种换行都认,末尾那个空行不会变成一个空项。和 Scratch 的格式一样,两边的文件可以互相用。

滑杆是真的在改变量,和脚本里「将 [分数] 设为 …」是同一件事,作品运行时同样生效。

滑杆范围#

滑杆范围:最小值、最大值

默认 0 到 100。两个数都是整数时滑杆按 1 走,只要有一个是小数就按 0.01 走,所以填 -5 到 5.5 会落到小数档。最小值必须小于最大值,否则点「确定」没有反应。

列表监视器#

列表监视器:表头、行号、行、底下一条

顶上是列表名,中间是行(装不下时自行滚动),底下一条是「+」、长度,以及右下角改大小的那 个角。

想做 怎么做
改一项 点那一行,就地改;Enter 或者点到别处提交,Esc 放弃
加一项 左下角「+」,加在末尾并直接进编辑状态
删一项 点那一行,右边出现 ×,点它;或者清空内容再按一次 Backspace
改大小 拖右下角那个把手,最小 80 × 60(舞台格)
整个换掉 右键「导入」,挑一个一行一项的 .txt
拿出去 右键「导出」,存成一行一项的 .txt

改完直接写进列表本身:舞台上改和脚本里改动的是同一份数据。空列表画一行「(空)」,长度 写 0。

位置怎么存、和舞台缩放的关系#

监视器画在画布上方的一层里,这一层按舞台格数绘制(480 × 360),再整体缩放到舞台此刻 显示的大小。因此:

  • 把舞台面板拉大拉小,监视器跟着一起放大缩小,摆的位置不变;
  • 全屏时也一样,只是倍数大得多(1920 × 1200 的窗口里量到 3.2 倍);
  • 改「舞台有多大」(格数)时,运行时会把每个监视器平移半个差值,让它相对舞台中心的 位置不变:480 → 640 时 x 从 115 变成 195,改回来又变回 115;
  • 超出舞台的部分被裁掉。

位置、显示样式、滑杆范围、列表的宽高、显示与否,全部存进作品(.sb3 的 monitors 段), 不是编辑器的偏好设置。

层级上,扩展往舞台上加的覆盖层压在监视器下面,切场景的淡入淡出画面和「询问并等待」的 输入框压在监视器上面,见舞台和扩展 API。

多场景#

监视器的状态是整个作品一份,但只有前台场景的读数画得出来:

  • 角色自己的变量:那个角色不在前台场景,就不画;
  • 「仅本场景」的舞台变量:换个场景就不画。

勾选状态保留,切回那个场景之后,读数仍在原来的位置上。见场景。

相关#

  • 变量和列表 —— 变量怎么建、三档作用域
  • 舞台 —— 舞台面板、全屏、舞台有多大
  • 场景 —— 多场景作品里变量归谁
  • Gandi 面板 —— 「数据管理」:所有变量和列表的一张表