跳转至内容

Celestia/Celx 脚本/CELX Lua 方法/CEL 命令 chase

来自维基教科书,自由的教科书

chase { }

告诉 Celestia 将活动坐标系设置为chase,它会追随当前选中的对象穿越太空。

该命令没有参数。


CELX 等效-1

基于 observer:setframe() 方法。

  • 找到名为 <string> 的目标对象,作为追随对象并存储在 "objectname" 中。
objectname = celestia:find( <string> )
  • 创建一个新的追随参考系,以 "objectname" 作为参考对象,并存储在 "frame" 中。
frame = celestia:newframe("chase", objectname)
  • 获取活动视图的观察者实例,并将参考系的坐标系设置为 "frame"。
obs = celestia:getobserver()
obs:setframe(frame)

总结

objectname = celestia:find( <string> )
frame = celestia:newframe("chase", objectname)
obs = celestia:getobserver()
obs:setframe(frame)


CELX 等效-2

基于 observer:chase() 方法。

  • 找到名为 <string> 的目标对象,作为追随对象并存储在 "objectname" 中。
objectname = celestia:find( <string> )
  • 获取活动视图的观察者实例,并激活 "objectname" 上的追随模式。
    追随模式与将参考系设置为以 objectname 作为参考对象的追随模式相同。
obs = celestia:getobserver()
obs:chase(objectname)

总结

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

示例

以下示例选择月球,将坐标系设置为chase,然后前往月球。

CEL

select { object "Sol/Earth/Moon" }
chase  { }
goto   { time 2 }
wait   { duration 2 }

CELX-1 使用 observer:setframe() 方法

moon = celestia:find("Sol/Earth/Moon")
celestia:select(moon)
frame = celestia:newframe("chase", moon)
obs = celestia:getobserver()
obs:setframe(frame)
obs:goto(moon, 2.0)
wait(2.0)

CELX-2 使用 observer:chase() 方法

moon = celestia:find("Sol/Earth/Moon")
celestia:select(moon)
obs = celestia:getobserver()
obs:chase(moon)
obs:goto(moon, 2.0)
wait(2.0)

返回 CEL 命令索引

华夏公益教科书