LlRotTarget/ja

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

要約

関数: integer llRotTarget( rotation rot, float error );

この関数で、ある回転に到達したときに、スクリプトにそれを知らせることができます。
roterror と一緒に登録し、登録解除されるまで at_rot_targetnot_at_rot_target を継続的に発生させます。
llRotTargetRemove を使って目標を登録解除するためのハンドラを integer で返します。

• rotation rot 目標とする回転
• float error rot に到達したか決める角度誤差をラジアンで

同じような関数が位置についてもあります: llTarget
この関数はオブジェクトを回転させません。回転させるには、llSetRotllRotLookAtllLookAt を使用してください。

サンプル

vector standrot = <0.0, 0.0, 0.0>;
vector fliprot = <45.0, 0.0, 0.0>;

// Hypatia Callisto 作の、簡単な 2 個のステートからなる回転検知と回転
// 作動すると、目標回転を検知します。
// 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; 
    }
    
}

関連項目

イベント

• at_rot_target not_at_rot_target 回転目標に達したときのイベント
• at_target not_at_target 位置目標に達したときのイベント

関数

•  llRotTargetRemove 回転目標を登録解除します
•  llTarget 位置目標を登録します
•  llTargetRemove 位置目標を登録解除します

特記事項

Search JIRA for related Issues

Signature

function integer llRotTarget( rotation rot, float error );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。