Celestia/Celx 脚本/CELX Lua 方法/Celx celscript
外观
在 CELX 脚本中,可以从包含有效 CEL 脚本的字符串创建 “celscript” 对象。
“celscript” 对象可用于执行嵌入在 CELX 脚本中的 CEL 脚本。这可以通过将 CEL 脚本以字符串形式传递给 celestia:createcelscript() 方法来完成,从而创建一个 “celscript” 对象。如果字符串不包含有效的 CEL 脚本,此方法将导致错误。
本章列出了所有可用的 celscript 方法,这些方法可用于 “celscript” 对象。
boolean celscript:tick()
返回一个布尔值,指示 “celscript” 对象中的 CEL 脚本是否已终止。
- true,CEL 脚本仍在运行。
- false,CEL 脚本已终止。
备注
- LUA 支持使用双括号的长字符串语法,这在 اینجا很有用。利用这一点,你几乎可以在所有情况下将完整的 CEL 脚本直接复制粘贴到 CELX 脚本中,而无需修改。
- 在 CELX 脚本中使用 CEL 脚本部分时,按下 [空格键] 的 PAUSE 功能无法完全正常工作。虽然你正在观看的场景将直接暂停,但 CEL 脚本部分将在后台继续运行,导致当你再次按下 [空格键] 继续脚本时,部分脚本会被视觉上跳过。
- 在 CELX 脚本中重复使用 “celscript” 对象时,建议先在脚本开头定义以下函数,它可以在主脚本中的不同位置使用
function CEL(source) local script = celestia:createcelscript(source) while script:tick() do wait(0) end end <... other CELX script code ...> CEL([[{ string:cel }]]) <... other CELX script code ...>
示例
以下示例使用 CELX 脚本中的 CEL 命令,让土星环绕 12 秒。
function CEL(source) local script = celestia:createcelscript(source) while script:tick() do wait(0) end end -- CEL([[{ select { object "Sol/Saturn" } center { } goto { time 3 distance 8 up [ 0 1 0 ] upframe "equatorial" } wait { duration 3 } orbit { axis [ 0 1 0 ] rate 30 duration 12 } }]])