Gandi 3.0文档
官网 打开编辑器
文档/作品、文件与终端

代码文件

作品除了造型和声音,还能带一批文本文件:JavaScript、Python、JSON、GLSL。它们跟着作品 一起存进 .sb3,不属于任何一个角色。写扩展、放一张配置表、写一段着色器,用的都是这里。

文件编辑器:左边一列文件,右边 Monaco

这一篇说的不是积木页。工作区左边那棵树里的 main、战斗、UI 是把一个角色的积木 分页存放,见积木页。

打开方式#

顶栏抽屉里的「文件编辑器」(顶栏那一排放不下的入口都收在「全部功能」里,见 顶栏)。资源面板里的文件条目右键也有「在文件编辑器中打开」。

第一次打开需要等待:编辑器内核是 Monaco(VS Code 用的那个),体积有好几兆,按需下载, 下载期间右边显示「正在加载编辑器…」。

五种文件#

「新建文件」的菜单
类型 扩展名 一个作品能有几个
JavaScript .js 不限
Python .py 不限
JSON .json 不限
GLSL .glsl 不限
扩展 .js,名字固定叫 extension 最多一个

「扩展」只能有一个。这条限制从 2.0 沿袭而来:那边按名字识别扩展文件,有两个就无法确定该 加载哪一个。

新建、改名、删除#

  • 新建:点「新建文件」,在菜单里挑类型,行里直接填名字,回车。名字不用带扩展名, 右边会显示它。新建完自动选中它,里面已经有一段起手模板(JSON 是一对花括号,GLSL 是一个 最小的片元着色器,扩展是一个带 getInfo 和一块积木的类)。
  • 改名:双击那一行。回车确定,Esc 放弃。
  • 删除:点行尾的 ×,会先确认。

名字有三条规则,不满足时列表下面会用红字提示:不能是空的;不能带 \ / : * ? " < > | (这些文件将来要写进 .sb3 的目录结构,带斜杠的会落到别处);不能和同类型的文件重名。

不需要手动保存#

停止输入半秒就自动写回作品。 这些文件是作品的一部分,没有单独的「保存」操作,保存到 电脑时它们跟着作品一起走。切到另一个文件、关掉面板、打开别的作品之前,最后输入的内容也会 先写回,不会丢。

(不是每敲一个键就写回:写回作品要重算校验和并重新编码,边打字边写会让长文件变卡。)

语法高亮按类型区分,括号不匹配之类的问题当场标红。JavaScript / TypeScript 和 JSON 各配了 一个语言服务(补全、检查);GLSL 只有高亮,没有补全,作品里的着色器通常几十行,高亮 已经足够看出哪里写错了。

文件确实在作品里#

存一次作品,project.json 里就多一段 gandi.assets,每个文件一条,按内容的校验和命名; 压缩包里也会多出对应的 <校验和>.js / .py / .json 文件。换一台机器打开这个 .sb3, 文件原样都在。

文件列表里每一行右边的数字是它当前的大小(179 B、1.2 KB)。

这些文件在资源面板里也能看到,那是全作品素材的总表,造型、声音、文件都在一张表上, 见资源库。

「装进作品」目前不可用#

选中「扩展」类型的文件时,右上角会多一颗「装进作品」按钮,意思是把这个文件当扩展装到当前 作品里。

这条路目前是断的。 点下去会弹出「装不上:Extension not found: data:text/javascript,…」: 编辑器把文件内容包成一个 data: 地址交给运行时,而运行时只接受 http: / https: 的扩展 地址。要装自己写的扩展,眼下得把它挂到一个能访问的网址上,从扩展库里用地址安装,见 扩展。

相关#

  • 积木页 —— 把一个角色的积木分页(不是这一篇说的文件)
  • 资源库 —— 全作品素材总表,文件也在里面
  • 打开与保存作品 —— 这些文件跟着 .sb3 走
  • 扩展 —— 怎么装扩展