跳转到内容

Celestia/Celx 脚本/CELX Lua 方法/Celx celscript

来自维基教科书,自由的教学读物

Celx 脚本: CELscript

[编辑 | 编辑源代码]

CELscript

[编辑 | 编辑源代码]

在 CELX 脚本中,可以从包含有效 CEL 脚本的字符串创建 “celscript” 对象。

“celscript” 对象可用于执行嵌入在 CELX 脚本中的 CEL 脚本。这可以通过将 CEL 脚本以字符串形式传递给 celestia:createcelscript() 方法来完成,从而创建一个 “celscript” 对象。如果字符串不包含有效的 CEL 脚本,此方法将导致错误。

本章列出了所有可用的 celscript 方法,这些方法可用于 “celscript” 对象。

boolean celscript:tick()

返回一个布尔值,指示 “celscript” 对象中的 CEL 脚本是否已终止。

  • true,CEL 脚本仍在运行。
  • false,CEL 脚本已终止。

备注

  1. LUA 支持使用双括号的长字符串语法,这在 اینجا很有用。利用这一点,你几乎可以在所有情况下将完整的 CEL 脚本直接复制粘贴到 CELX 脚本中,而无需修改。
  2. 在 CELX 脚本中使用 CEL 脚本部分时,按下 [空格键] 的 PAUSE 功能无法完全正常工作。虽然你正在观看的场景将直接暂停,但 CEL 脚本部分将在后台继续运行,导致当你再次按下 [空格键] 继续脚本时,部分脚本会被视觉上跳过。
  3. 在 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 }
   }]])


返回 celscript 方法索引。


华夏公益教科书