规则脚本编写--事件
事件函数中所有提及“机器人名称”处,在编写规则时均应使用“起始点”的名称。
接触
函数/作用 | 参数/返回值/说明 |
---|---|
Event.IsTouch(rName, tName) 检测机器人/物体是否与触发器接触 |
参数 rName string:机器人/物体名称 tName string:触发器名称 返回 touch bool:是否接触,true接触,false未接触 说明 机器人/物体与触发器接触时返回true,接触过未离开或已离开时返回false 示例 if Event.IsTouch(“起始点”, “触发方块”) then ShowMsg(“机器人到这里了!”) end |
整体进入
函数/作用 | 参数/返回值/说明 |
---|---|
Event.IsAllIn(rName, tName) 检测机器人/物体是否与触发器接触 |
参数 rName string:机器人/物体名称 tName string:触发器名称 返回 allOut bool:是否进入,true进入,false未进入、未整体进入或已离开 说明 机器人/物体整体离开触发器时返回true,未离开或未接触时返回false 示例 if Event.IsAllIn(“起始点”, “触发方块”) then ShowMsg(“机器人进入这里了!”) end |
整体离开
函数/作用 | 参数/返回值/说明 |
---|---|
Event.IsAllOut(rName, tName) 检测机器人/物体是否与触发器接触 |
参数 rName string:机器人/物体名称 tName string:触发器名称 返回 allOut bool:是否离开,true离开,false未离开或未接触 说明 机器人/物体整体离开触发器时返回true,未离开或未接触时返回false 示例 if Event.IsAllOut(“起始点”, “触发方块”) then ShowMsg(“机器人进入这里了!”) end |
整体通过Z轴
函数/作用 | 参数/返回值/说明 |
---|---|
Event.IsAllPass(rName, tName) 检测机器人/物体是否整体通过触发器z轴 |
参数 rName string:机器人/物体名称 tName string:触发器名称 返回 allOut bool:是否整体通过Z轴,true通过,false未通过、未接触或未离开 说明 机器人/物体整体通过触发器Z轴时返回true,未通过、未接触或未离开时返回false 示例 if Event.IsAllPass(“起始点”, “触发方块”) then ShowMsg(“机器人通过这里了!”) end |
离开所有触发器
离开所有触发器常用于检测机器人在行走轨迹时是否脱离轨迹线。
轨迹线常由多种线条组合,每种线条使用一个触发器用于检测,机器人与其中任意一个接触时,认为机器人仍在轨迹线上,机器人离开所有触发器后脱离轨迹线。
函数/作用 | 参数/返回值/说明 |
---|---|
Event.IsLeaveAll(rName, tName1, tName2...) 检测机器人/物体是否离开参数列表中所有触发器 |
参数 rName string:机器人/物体名称 tName1 string:触发器名称1 tName2 string:触发器名称2 ...表示可有多个触发器,使用“,”分隔 返回 leaveAll bool:是否离开所有触发器,true离开所有,即没有与任何一个接触,false至少与其中一个触发器接触 示例 if Event.IsLeaveAll(“起始点”, “触发方块”, “ 触发方块_2”, “触发方块_3”) then ShowMsg(“机器人脱离轨迹线!”) end |
碰撞
函数/作用 | 参数/返回值/说明 |
---|---|
Event.IsCollide(rName, name) 检测机器人/物体是否与另一个物体发生碰撞 |
参数 rName string:机器人/物体名称 name string:另一个物体名称 返回 collide bool:是否碰撞,true发生碰撞,false未碰撞 示例 if Event.IsCollide(“起始点”, “立方体”) then ShowMsg(“机器人碰到东西了!”) end |
时间相关
函数/作用 | 参数/返回值/说明 |
---|---|
Event.TimeOver(eName, time) 设置定时,时间到时返回true |
参数 eName string:自定义事件名称 time number:定时时长,单位毫秒 返回 over bool:是否到达定时时间,true到达,false未到达或已超过失效 示例 if Event.TimeOver(“定时”, 3000) then ShowMsg(“定时3秒时间到了。”) end |
Event.EverySeconds(eName, interval,ev) 设置事件发生的开始及每隔一段时间报告一次 |
参数 eName string:自定义事件名称 interval number:间隔时间,单位毫秒 ev bool:事件发生,true发生,false未发生 返回 当某个持续发生的事件发生时,第一次返回一次true,其后每隔指定时间返回一次true 示例 if Event.EverySeconds(“失败”, 5000, true) then ShowMsg(“任务失败了!”, “red”) end 任务失败时,第一次显示一次消息,然后每隔5秒显示一次消息提醒用户。 |
Event.ShowMsgEverySeconds(eName,interval, ev, msg) 基本作用同上,事件发生时第一次显示一次消息,其后每隔一段时间显示一次消息 |
参数 eName string:自定义事件名称 interval number:间隔时间,单位毫秒 ev bool:事件发生,true发生,false未发生 msg string:要显示的消息 Event.ShowMsgEverySeconds(“失败”, 5000, true, “任务失败了!”) |
Event.IsContinue(eName, time, ev) 检测事件是否持续发生指定时间 |
参数 eName string:自定义事件名称 time number:持续时间,单位毫秒 ev bool:事件发生,true发生,false未发生 示例 if Event.IsContinue(“脱离”,1000, true) then ShowMsg(“机器人脱离轨迹线”) end 当机器人持续脱离轨迹线超过1秒钟时,显示消息。当机器人仅短时间内脱离时不提示消息。 |
Event.OnlyOnce(eName) 仅在第一次调用时返回true |
参数 eName string:自定义事件名称 返回 once bool:第一次调用时返回true,之后总是返回false 说明 在循环希望只做一次的操作可以使用这个函数实现。 示例 if Event.OnlyOnce(“开始”) then ShowMsg(“任务开始了!”) end 仅显示一次消息。 |
Event.ShowMsgOnlyOnce(eName, msg) 仅显示一次消息 |
参数 eName string:自定义事件名称 msg string:消息内容 示例 Event.ShowMsgOnlyOnce(“开始”,任务开始了!”) |