规则脚本编写--系统接口函数
萝卜圈仿真提供了系统与规则脚本交互的函数接口,使用这些接口可以获取/设置机器人或物体在仿真时的属性或状态。
说明
参数或返回值说明
●    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矩形区域内),并自动设置到随机位置 |