LlRotTarget
首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
函数名 |
---|
Function: integer llRotTarget( rotation rot, float error ); |
参数:
• rotation rot - 目标旋转 • float error - 以弧度表示的角度,定义了腐烂发生的时间 |
返回值:这个函数是为了让脚本知道它何时到达了一个旋转。
它注册了一个带有错误的rot,该错误将连续触发at_rot_target和not_at_rot_target事件,直到未注册为止。 返回一个handle(一个整数)来用llRotTargetRemove取消目标注册
这个函数不旋转对象,使用llSetRot, llRotLookAt或llLookAt来完成。 |
注意事项 |
---|
无 |
示例 |
---|
示例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 – 目标位置事件 |