Difference between revisions of "LlRotTarget/ja"

From Second Life Wiki
Jump to navigation Jump to search
m
m
Line 6: Line 6:
|p2_type=float|p2_name=error|p2_desc='''rot''' に到達したか決める角度誤差をラジアンで
|p2_type=float|p2_name=error|p2_desc='''rot''' に到達したか決める角度誤差をラジアンで
|func_footnote=同じような関数が位置についてもあります: {{LSLG/ja|llTarget}}<br/>この関数はオブジェクトを回転させません。回転させるには、{{LSLG/ja|llSetRot}} 、{{LSLG/ja|llRotLookAt}} 、{{LSLG/ja|llLookAt}} を使用してください。
|func_footnote=同じような関数が位置についてもあります: {{LSLG/ja|llTarget}}<br/>この関数はオブジェクトを回転させません。回転させるには、{{LSLG/ja|llSetRot}} 、{{LSLG/ja|llRotLookAt}} 、{{LSLG/ja|llLookAt}} を使用してください。
|func_desc=この関数で、スクリプトに、いつある回転に到達したかを知らせることができます。<br/>'''rot''' を '''error''' と一緒に登録し、登録解除されるまで {{LSLG/ja|at_rot_target}} や {{LSLG/ja|not_at_rot_target}} を継続的に発生させます。
|func_desc=この関数で、ある回転に到達したときに、スクリプトにそれを知らせることができます。<br/>'''rot''' を '''error''' と一緒に登録し、登録解除されるまで {{LSLG/ja|at_rot_target}} や {{LSLG/ja|not_at_rot_target}} を継続的に発生させます。
|return_text={{LSLG/ja|llRotTargetRemove}} を使って対象を登録解除するためのハンドラ
|return_text={{LSLG/ja|llRotTargetRemove}} を使って対象を登録解除するためのハンドラ
|spec
|spec

Revision as of 02:32, 15 May 2010

要約

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

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

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

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

サンプル

<lsl> 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; 
   }
   

}

</lsl>

関連項目

イベント

• 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の関連した項目が参考になるかもしれません。