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)