跳轉到內容

Celestia/Celx 指令碼/CELX Lua 方法/CEL 命令 track

來自華夏公益教科書,自由的教科書

track { }

追蹤當前選定的物件,使其保持在顯示的中心。 必須先使用select命令,選擇一個要追蹤的物件。

該命令沒有引數。

注意:如果要使相機保持與物件的固定距離,請在track命令後新增follow命令。

注意:如果當前選定的物件啟用了track,從 Celestia 1.3.1 版本開始,您可以選擇一個空物件“”,然後使用track命令取消對當前選定物件的追蹤。


CELX 等效 start 追蹤

開始追蹤物件,基於 observer:track() 方法。

  • 找到要追蹤的名稱為 <string> 的目標物件,並存儲在“objectname”中。
objectname = celestia:find( <string> )
  • 獲取活動檢視的觀察者例項,並將追蹤設定在“objectname”上(即始終保持“objectname”居中)。
obs = celestia:getobserver()
obs:track(objectname)

總結

objectname = celestia:find( <string> )
obs = celestia:getobserver()
obs:track(objectname)


CELX 等效 stop 追蹤

停止追蹤物件,基於 observer:track() 方法。

  • 獲取活動檢視的觀察者例項,並將追蹤設定為一個空物件。
obs = celestia:getobserver()
obs:track(nil)

示例
釋放對任何當前選定物件的控制(cancel),選擇地球(select),goto 地球,然後track。 地球將開始以它在太空中實際執行的速度遠離你,但 Celestia 會track地球,使其保持在顯示的中心。 以下程式碼示例展示了這一點,時間加快了 1000 倍。

CEL

cancel   { }
select   { object "Sol/Earth" }
goto     { time 3 distance 7 upframe "universal" }
wait     { duration 5 }
track    { }
timerate { rate 1000 }

CELX 使用 observer:track() 方法

obs = celestia:getobserver()
obs:cancelgoto()
obs:track(nil)
obs:setframe(celestia:newframe("universal"))
earth = celestia:find("Sol/Earth")
celestia:select(earth)
-- The following 2 methods are obsolete, because of methods above
-- frame = celestia:newframe("universal", earth)
-- obs:setframe(frame)
radius = earth:radius()
distance = 7 * radius
obs:gotodistance(earth, distance, 3 )
wait (5)
obs:track(earth)
celestia:settimescale(1000)


返回 CEL 命令索引

華夏公益教科書