萝卜圈仿真提供了系统与规则脚本交互的函数接口,使用这些接口可以获取/设置机器人或物体在仿真时的属性或状态。

说明

参数或返回值说明

●    name:物体名称,字符串类型,使用英文双引号括住,如”立方体”

●    spName:起始点名称,字符串类型,使用英文双引号括住,如”起始点”。

●    x, y, z:表示位置或朝向的3个数值,用英文逗号分隔,如 SDK.GetPos(“立方体”, 1, 0, 1),其中的“1,0,1”即表示x=1,y=0,z=1的位置坐标。

●    pos/dir:位置或朝向,Lua的table类型,用于返回值。此类函数返回一个table,表示位置或朝向,table = {x=n,y=n,z=n};

参数或返回值类型说明

●    string:字符串类型,使用英文双引号括住,如”起始点”、”立方体”。

●    number:数字类型,任何数字,如0、1、2.5、-3.5等。

●    table:表类型,表中具有成员,如{x=1, y=2, z=3}。

●    bool:布尔类型,true或false。

机器人类接口

规则脚本中需要获取或设置机器人的属性时,使用与机器人关联的起始点的名称来索引机器人。“关联的起始点”指在仿真开始时,机器人处于的起始点。

机器人类接口
函数/作用 参数/返回值/说明
SDK.GetRobotPos(spName)
获取机器人位置
参数
spName string:起始点名称
返回值
pos table:机器人位置,例{x=1,y=2,z=1}
说明
此函数返回机器人控制器的位置。
SDK.GetRobotDir(spName)
获取机器人朝向
参数
spName string:起始点名称
返回值
dir table:机器人朝向,例{x=0,y=90,z=0}
说明
此函数返回机器人控制器的朝向。
SDK.GetRobotLineVel(spName)
获取机器人线速度
参数
spName string:起始点名称
返回值
lv table:机器人线速度,例{x=0,y=90,z=0}
SDK.GetRobotAngVel(spName)
获取机器人角速度
参数
spName string:起始点名称
返回值
av table:机器人角速度,例{x=0,y=90,z=0}
SDK.GetRobotRadius(spName)
获取机器人直径
参数
spName string:起始点名称
返回值
value number:直径
SDK.SetRobotBattery(spName, battery)
设置机器人电量
参数
spName string:起始点名称
battery number:电量值,数值
SDK.RobotExplode(spName, flySpeed)
使机器人爆炸
参数
spName string:起始点名称
flySpeed number:初始速度,数值
说明
将机器人爆炸解体

物体位置/朝向

物体位置/朝向
函数/作用 参数/返回值/说明
SDK.SetPos(name, x, y, z)
设置物体位置
仅对动态和动静之间的物体有效
参数
name string:物体名称
x, y, z number:物体位置
示例
SDK.SetPos(“立方体”, 2, 0, 2)
将“立方体”设置到x=2,y=0,z=2的位置
SDK.GetPos(name)
获取物体位置
参数
name string:物体名称
返回
pos table:物体位置,例{x=1,y=1,z=1}
示例
local pos = SDK.GetPos(“立方体”)
获取“立方体”的位置,pos={x=2,y=0,z=2}
SDK.SetDir(name, x, y, z)
设置物体朝向
仅对动态和动静之间的物体有效
参数
name string:物体名称
x, y, z number:物体位置
示例
SDK.SetDir(“立方体”, 0, 45, 0)
设置“立方体”沿Y轴旋转45度
SDK.GetDir(name)
获取物体朝向
参数
name string:物体名称
返回
dir table:物体朝向,例{x=0,y=90,z=1}
示例
local dir = SDK.GetDir(“立方体”)
获取“立方体”的位置,dir={x=0,y=45,z=0}

物体线速度/角速度

物体位置/朝向
函数/作用 参数/返回值/说明
SDK.SetLineVel(name, x, y, z)
设置物体线速度
仅对动态物体有效
参数
name string:物体名称
x, y, z number:物体线速度
示列
SDK.SetLineVel(“立方体”, 1, 0, 0)
使“立方体”沿X轴方各以1的线速度移动
SDK.GetLineVel(name)
获取物体线速度
参数
name string:物体名称
返回
pos table:物体线速度,例{x=1,y=1,z=1}
示例
local lv = SDK.GetLineVel(“立方体”)
获取“立方体”的线速度,lv={x=1,y=0,z=0}
SDK.SetAngVel(name, x, y, z)
设置物体角速度
仅对动态物体有效
参数
name string:物体名称
x, y, z number:物体角速度
示例
SDK.SetAnlVel(“立方体”, 0, 1, 0)
使“立方体”的
SDK.GetAngVel(name)
获取物体角速度
参数
name string:物体名称
返回
dir table:物体角速度,例{x=0,y=90,z=1}

触发器

触发器
函数/作用 参数/返回值/说明
SDK.SetTrigger(tName, item, value)
设置触发器的某触发项打开或关闭
参数
tName string:触发器名称
item string:触发项,可是以下之一
“All”
“Touch”
“AllIn”
“AllOut”
“AllPass”
“AllItem” 基本触发项
仅接触
整体进入
整体离开
整体通过Z轴
以上所有选项
value bool:true打开,false关闭
说明
如设置“触发方块”在机器人整体通时触发
SDK.SetTrigger(“触发方块”, “AllPass”, true)
SDK.GetTrigger(tName, item)
获取触发器的某触发项的状态
参数
tName string:触发器名称
返回
item bool:true打开状态,false关闭状态,nil获取失败

颜色

颜色
函数/作用 参数/返回值/说明
SDK.SetColorObj(name, r, g, b)
设置物体的颜色
参数
name string:触发器名称
r,g,b number:RGB各颜色分量值,各分量有效范围为0-255
说明
仅几何物体、颜色标记等物体可以设置颜色
示例
SDK.SetColorObj(“立方体”, 255,0,0)
设置立方体为纯红色

是否可见

是否可见
函数/作用 参数/返回值/说明
SDK.SetVisible(name, visible)
设置物体在仿真运行时是否可见
参数
name string:物体名称
visible bool:true可见,false不可见

全局函数

全局函数
函数/作用 参数/返回值/说明
Round(value, decNum [, intercept])
四舍五入或截取指定小数位
参数
value number:用于计算的数值
decNum number:保留的位数(decNum>=0)
intercept bool:可选,是否截取模式,默认为false。true仅截取不进行四舍五入,false四舍五入
示例1
Round(3.456, 2)
四舍五入到小数点后2位,结果为3.46
示例2
Round(3.456, 2, true)
截取到小数点后2位,结果为3.45
T2S(time)
时间转换为中文字符串
参数
time value:以秒为单位的时间
返回
time string:中文样式的时间字符串
说明
用于转换时间为友好显示的时间字符串
示例
local s = T2S(123.45)
s的结果为”2 分钟 3 秒 45”
ShowMsg(msg [, color])
在仿真时显示提示文字
参数
msg string:要显示的文字内容
color string:可选,字体前景色,默认为空显示蓝色。”red”显示红色,”yellow”显示黄色。
说明
在仿真时显示提示文字,一般消息用默认色,警时用黄色,任务失败时用红色。
示例1
ShowMsg(“任务开始!”)
在仿真界面上显示蓝色提示文字。
示例2
ShowMsg(“任务失败了!”, “red”)
在仿真界面上显示红色提示文字。
RandomPos(name,range[,centre][,autoSet][,dist]
物体的位置在指定范围内随机
参数
name string:物体名称
range table:各轴±随机范围,{2,0,2}表示在X轴±2,Z轴±2的范围内随机
centre table:可选,随机范围的中心点,默认为物体当前位置,{x,y,z}形式
autoSet bool:可选,自动移动物体到随机结果的位置上,默认为true。true自动设置,false不设置
dist number:可选,随机位置的最小间距,默认为0.5,其值dist>0
返回
pos table:随机出的位置{x,y,z}形式
说明
将某物体的位置在一定范围内进行随机,常用于随机起始点位置
示例1
RandomPos(“起始点”, {2,0,0})
将“起始点”沿X±2的范围随机,并自动设置到随机位置上。
示例2
RandomPos(“起始点”, {2,0,3}, {0,0,0})
将“起始点”以{0,0,0}为中心,沿X±2,Y±3的范围随机(即4×6矩形区域内),并自动设置到随机位置