|
- //先执行一次寻路操作然后调用一个写好的获取移动状态的函数 再根据返回值进行下一步执行判断
- //获取移动状态,5秒内的移动距离和方向
- function getMoveState(i)
- old = DAL.getCoor(i)
- help.sleep(5000)
- new = DAL.getCoor(i)
- if(old==new)
- jcfz.print("获取移动状态:5秒内未移动")
- return "0|0"
- endif
- var rx,ry,l,Angle,direction
- rx=jcfz.getArrResult(new,0)-jcfz.getArrResult(old,0)
- ry=jcfz.getArrResult(new,1)-jcfz.getArrResult(old,1)
- l=type.cint(math.sqrt(rx*rx+ry*ry))
- if(ry==0)
- if(rx>0)
- Angle=90
- else
- Angle=270
- endif
- else
- Angle=type.cint(math.atan(math.abs(rx/ry))*180/3.14)
- if((rx>=0)&&(ry>0))
- Angle=Angle
- endif
- if((rx>=0)&&(ry<0))
- Angle=180-Angle
- endif
- if((rx<0)&&(ry<0))
- Angle=180+Angle
- endif
- if((rx<0)&&(ry>0))
- Angle=360-Angle
- endif
- endif
- if(Angle==0)
- direction="正北方向"
- else
- if(Angle<90)
- direction="北偏东"&(Angle%90)&"°"
- else
- if(Angle==90)
- direction="正东方向"
- else
- if(Angle<180)
- direction="南偏东"&(Angle%90)&"°"
- else
- if(Angle==180)
- direction="正南方向"
- else
- if(Angle<270)
- direction="南偏西"&(Angle%90)&"°"
- else
- if(Angle==270)
- direction="正西方向"
- else
- if(Angle<360)
- direction="北偏西"&(Angle%90)&"°"
- endif
- endif
- endif
- endif
- endif
- endif
- endif
- endif
- jcfz.print("获取移动状态:5秒内向"&direction&"移动"&l&"米")
- return Angle&"|"&l
- endfunction
复制代码 |
|