Difference between revisions of "LlRotTarget/ja"
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) m (Undo revision 850252 by Mako Nozaki (Talk)) |
Mako Nozaki (talk | contribs) |
||
Line 3: | Line 3: | ||
|func=llRotTarget | |func=llRotTarget | ||
|return_type=integer | |return_type=integer | ||
|p1_type=rotation|p1_name=rot|p1_desc= | |p1_type=rotation|p1_name=rot|p1_desc=目標とする回転 | ||
|p2_type=float|p2_name=error|p2_desc='''rot''' | |p2_type=float|p2_name=error|p2_desc='''rot''' に到達したか決める角度誤差をラジアンで | ||
|func_footnote= | |func_footnote=同じような関数が位置についてもあります: {{LSLG/ja|llTarget}}<br/>この関数はオブジェクトを回転させません。回転させるには、{{LSLG/ja|llSetRot}} 、{{LSLG/ja|llRotLookAt}} 、{{LSLG/ja|llLookAt}} を使用してください。 | ||
|func_desc= | |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 | ||
|caveats | |caveats | ||
Line 16: | Line 16: | ||
vector fliprot = <45.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 | // at_rot_target, not_at_rot_target, llRotTarget, llRotTargetRemove | ||
// の純粋なサンプルがほとんどなかったので、サンプルを書きました。 | |||
integer rottarget; | integer rottarget; | ||
Line 28: | Line 28: | ||
state_entry(){ | state_entry(){ | ||
rottarget = llRotTarget(llEuler2Rot(fliprot*DEG_TO_RAD), 0.1); | rottarget = llRotTarget(llEuler2Rot(fliprot*DEG_TO_RAD), 0.1); | ||
llSetPrimitiveParams ([PRIM_ROTATION, llEuler2Rot(standrot*DEG_TO_RAD)]); // | llSetPrimitiveParams ([PRIM_ROTATION, llEuler2Rot(standrot*DEG_TO_RAD)]); // 最初の回転位置まで回転する | ||
} | } | ||
Line 84: | Line 34: | ||
{ | { | ||
llRotTargetRemove( rottarget ); | llRotTargetRemove( rottarget ); | ||
llOwnerSay("not there"); // | llOwnerSay("not there"); //目標ではない | ||
} | } | ||
touch_start (integer total_number) | touch_start (integer total_number) | ||
{ | { | ||
state rotatestate; // | state rotatestate; // ステートを切り替えて、新しい位置に | ||
} | } | ||
} | } | ||
Line 98: | Line 48: | ||
state_entry(){ | state_entry(){ | ||
rottarget = llRotTarget(llEuler2Rot(fliprot*DEG_TO_RAD), 0.1); | rottarget = llRotTarget(llEuler2Rot(fliprot*DEG_TO_RAD), 0.1); | ||
llSetPrimitiveParams ([PRIM_ROTATION, llEuler2Rot(fliprot*DEG_TO_RAD)]); // | llSetPrimitiveParams ([PRIM_ROTATION, llEuler2Rot(fliprot*DEG_TO_RAD)]); // 新しい回転位置まで回転する | ||
} | } | ||
Line 104: | Line 54: | ||
{ | { | ||
llRotTargetRemove( rottarget ); | llRotTargetRemove( rottarget ); | ||
llOwnerSay("there"); // | llOwnerSay("there"); //目標に到達 | ||
} | } | ||
Line 116: | Line 66: | ||
|also_tests | |also_tests | ||
|also_events= | |also_events= | ||
{{LSL DefineRow| | {{LSL DefineRow|{{LSLG/ja|at_rot_target}}|{{LSLG/ja|not_at_rot_target}}|目標回転に達したときのイベント}} | ||
{{LSL DefineRow| | {{LSL DefineRow|{{LSLG/ja|at_target}}|{{LSLG/ja|not_at_target}}|目標位置に達したときのイベント}} | ||
|also_functions= | |also_functions= | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llRotTargetRemove}}|目標回転を登録解除します}} | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llTarget}}|目標位置を登録します}} | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llTargetRemove}}|目標位置を登録解除します}} | ||
|also_articles | |also_articles | ||
|notes | |notes |
Revision as of 17:20, 8 May 2010
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: integer llRotTarget( rotation rot, float error );
この関数で、スクリプトに、いつある回転に到達したかを知らせることができます。
rot を error と一緒に登録し、登録解除されるまで at_rot_target や not_at_rot_target を継続的に発生させます。
llRotTargetRemove を使って対象を登録解除するためのハンドラを integer で返します。
• rotation | rot | – | 目標とする回転 | |
• float | error | – | rot に到達したか決める角度誤差をラジアンで |
同じような関数が位置についてもあります: llTarget
この関数はオブジェクトを回転させません。回転させるには、llSetRot 、llRotLookAt 、llLookAt を使用してください。
サンプル
<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 | – | 目標位置を登録解除します |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。