跳轉到內容

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 方法索引。


華夏公益教科書