Difference between revisions of "LlTarget/ja"

From Second Life Wiki
Jump to navigation Jump to search
m (Undo revision 850302 by Mako Nozaki (Talk))
Line 5: Line 5:
|p1_type=vector|p1_name=position
|p1_type=vector|p1_name=position
|p2_type=float|p2_name=range
|p2_type=float|p2_name=range
|func_footnote=よく似た関数の{{LSLG/ja|llRotTarget}}が回転のために存在します。<br/>この関数はオブジェクトを動かさないため、{{LSLG/ja|llSetPos}}{{LSLG/ja|llMoveToTarget}}を使うことで行ないます。
|func_footnote=同じような関数が回転についてもあります: {{LSLG/ja|llRotTarget}}<br/>この関数はオブジェクトを移動させません。移動させるには、 {{LSLG/ja|llSetPos}} {{LSLG/ja|llMoveToTarget}} を使用します。
|func_desc=この関数は、スクリプトが位置に到着したときを知ることを試みます。<br/>'''position''''''range'''を登録すると{{LSLG/ja|at_target}}が作動し、{{LSLG|not_at_target}}イベントが登録解除されるまで継続します。
|func_desc=この関数で、ある位置に到達したときに、スクリプトにそれを知らせることができます。<br/>'''position''' '''range''' と一緒に登録し、登録解除されるまで {{LSLG/ja|at_target}} {{LSLG/ja|not_at_target}} のイベントを継続的に発生させ続けます。
|return_text={{LSLG/ja|llTargetRemove}}と対象を登録解除する処理
|return_text={{LSLG/ja|llTargetRemove}} を使って目標を登録解除するためのハンドラ
|spec
|spec
|caveats
|caveats=* 位置は常に現在の地域に相対するものです。地域 A にいるときに llTarget に <100, 100, 100> を指定し、それからオブジェクトを地域 B に移動させると、目標は自動的に地域 B の <100, 100, 100> になります。
* 地域の境界線の外に位置を設定することもできますが、 {{LSLG/ja|at_target}} は範囲が現在の地域に収まっている場合にだけ発生します。現在の地域の外にある範囲では、 {{LSLG/ja|at_target}} は発生しません。
* 1 つのスクリプトで 8 つの目標までを設定することができます。それ以上 llTarget を呼び出すと、一番古い目標を削除します。
|constants
|constants
|examples=
|examples=
Line 45: Line 47:
|helpers
|helpers
|also_functions=
|also_functions=
{{LSL DefineRow||[[llTargetRemove/ja|llTargetRemove]]|対象の位置を停止します}}
{{LSL DefineRow||{{LSLG/ja|llTargetRemove}}|位置目標を登録解除します}}
{{LSL DefineRow||[[llRotTarget/ja|llRotTarget]]|対象の回転を設定します}}
{{LSL DefineRow||{{LSLG/ja|llRotTarget}}|回転目標を登録します}}
{{LSL DefineRow||[[llRotTargetRemove/ja|llRotTargetRemove]]|対象の回転を停止します}}
{{LSL DefineRow||{{LSLG/ja|llRotTargetRemove}}|回転目標を登録解除します}}
|also_tests
|also_tests
|also_events=
|also_events=
{{LSL DefineRow|[[at_target/ja|at_target]]|[[not_at_target/ja|not_at_target]]|位置を対象のイベント}}
{{LSL DefineRow|{{LSLG/ja|at_target}}|{{LSLG/ja|not_at_target}}|位置目標に達したときのイベント}}
{{LSL DefineRow|[[at_rot_target/ja|at_rot_target]]|[[not_at_rot_target/ja|not_at_rot_target]]|回転を対象のイベント}}
{{LSL DefineRow|{{LSLG/ja|at_rot_target}}|{{LSLG/ja|not_at_rot_target}}|回転目標に達したときのイベント}}
|also_articles
|also_articles
|notes
|notes
|cat1=Target
|cat1=Target
|cat2=Physics
|cat2=Physics
|cat3
|cat3=At Target
|cat4
|cat4
}}
}}

Revision as of 02:44, 15 May 2010

要約

関数: integer llTarget( vector position, float range );

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

• vector position
• float range

同じような関数が回転についてもあります: llRotTarget
この関数はオブジェクトを移動させません。移動させるには、 llSetPosllMoveToTarget を使用します。

警告

  • 位置は常に現在の地域に相対するものです。地域 A にいるときに llTarget に <100, 100, 100> を指定し、それからオブジェクトを地域 B に移動させると、目標は自動的に地域 B の <100, 100, 100> になります。
  • 地域の境界線の外に位置を設定することもできますが、 at_target は範囲が現在の地域に収まっている場合にだけ発生します。現在の地域の外にある範囲では、 at_target は発生しません。
  • 1 つのスクリプトで 8 つの目標までを設定することができます。それ以上 llTarget を呼び出すと、一番古い目標を削除します。

サンプル

<lsl> integer target_id; vector target_pos;

default {

   state_entry()
   {
       target_pos = llGetPos() + <1.0, 0.0, 0.0>;
       target_id = llTarget(target_pos, 0.5);
   }
   at_target(integer tnum, vector targetpos, vector ourpos)
   {
       if (tnum == target_id)
       {
           llOwnerSay("object is within range of target");
           llOwnerSay("target position: " + (string)targetpos + ", object is now at: " + (string)ourpos);
           llOwnerSay("this is " + (string)llVecDist(targetpos, ourpos) + " meters from the target");
           llTargetRemove(target_id);
       }
   }
   not_at_target()
   {
       llOwnerSay(
           "not there yet - object is at " + (string)llGetPos() + 
           ", which is " + (string)llVecDist(target_pos, llGetPos()) + 
           " meters from the target (" + (string)target_pos + ")"
       );
   }

}

</lsl>

関連項目

イベント

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

関数

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

特記事項

Search JIRA for related Issues

Signature

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