LlRotTarget

来自人工智能助力教育知识百科
跳转至: 导航搜索

Template:Needs Translation/


函数名
Function: integer llRotTarget( rotation rot, float error );
参数:

• rotation rot - 目标旋转

• float error - 以弧度表示的角度,定义了腐烂发生的时间

返回值:这个函数是为了让脚本知道它何时到达了一个旋转。

它注册了一个带有错误的rot,该错误将连续触发at_rot_targetnot_at_rot_target事件,直到未注册为止。

返回一个handle(一个整数)来用llRotTargetRemove取消目标注册


类似的功能存在于位置:llTarget

这个函数不旋转对象,使用llSetRot, llRotLookAtllLookAt来完成。

注意事项
示例
示例1
vector standrot = <0.0, 0.0, 0.0>;
vector fliprot = <45.0, 0.0, 0.0>;
 
/ Hypatia Callisto简单的双态rot目标检测和旋转工作,用于检测旋转目标。由于at_rot_target, not_at_rot_target, llRotTarget, llRotTargetRemove
 
integer rottarget;
 
default
{
 
    state_entry(){ 
        rottarget = llRotTarget(llEuler2Rot(fliprot*DEG_TO_RAD), 0.1);
        llSetPrimitiveParams ([PRIM_ROTATION, llEuler2Rot(standrot*DEG_TO_RAD)]); // 旋转到起始点
    }
 
    not_at_rot_target()
    { 
        llRotTargetRemove( rottarget );
        llOwnerSay("not there"); //没有目标
    }
 
    touch_start (integer total_number)
    {
        state rotatestate; // 为新位置更改状态
    }
}
 
 
state rotatestate 
{ 
    state_entry(){ 
        rottarget = llRotTarget(llEuler2Rot(fliprot*DEG_TO_RAD), 0.1);
        llSetPrimitiveParams ([PRIM_ROTATION, llEuler2Rot(fliprot*DEG_TO_RAD)]); // 转到新点
    }
 
    at_rot_target(integer tnum, rotation targetrot, rotation ourrot)
    { 
        llRotTargetRemove( rottarget );
        llOwnerSay("there"); //达到了目标
    }
 
    touch_start(integer touched){ 
        state default; 
    }
 
}
相关函数
llRotTargetRemove - 取消目标旋转

llTarget - 登记目标位置

llTargetRemove - 取消目标位置

相关事件
at_rot_target not_at_rot_target – 旋转目标事件

at_target not_at_target – 目标位置事件