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 – 目标位置事件 |