Difference between revisions of "LlTarget/ja"
< LlTarget
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) m (カテゴリ変更) |
|||
(3 intermediate revisions by one other user not shown) | |||
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= | |func_footnote=同じような関数が回転についてもあります: {{LSLG/ja|llRotTarget}}<br/>この関数はオブジェクトを移動させません。移動させるには、 {{LSLG/ja|llSetPos}} や {{LSLG/ja|llMoveToTarget}} を使用します。 | ||
|func_desc= | |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= | ||
< | <source lang="lsl2"> | ||
integer target_id; | integer target_id; | ||
vector target_pos; | vector target_pos; | ||
Line 27: | Line 29: | ||
if (tnum == target_id) | if (tnum == target_id) | ||
{ | { | ||
llOwnerSay(" | llOwnerSay("オブジェクトは目標範囲に入っています"); | ||
llOwnerSay(" | llOwnerSay("目標位置: " + (string)targetpos + ", オブジェクトの現在位置: " + (string)ourpos); | ||
llOwnerSay(" | llOwnerSay("これは目標から " + (string)llVecDist(targetpos, ourpos) + " メートル離れています"); | ||
llTargetRemove(target_id); | llTargetRemove(target_id); | ||
} | } | ||
Line 36: | Line 38: | ||
{ | { | ||
llOwnerSay( | llOwnerSay( | ||
" | "まだ到達していません - オブジェクトは " + (string)llGetPos() + | ||
", | " にあり, それは目標から " + (string)llVecDist(target_pos, llGetPos()) + | ||
" | " メートル離れています (" + (string)target_pos + ")" | ||
); | ); | ||
} | } | ||
} | } | ||
</ | </source> | ||
|helpers | |helpers | ||
|also_functions= | |also_functions= | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llTargetRemove}}|位置目標を登録解除します}} | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llRotTarget}}|回転目標を登録します}} | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llRotTargetRemove}}|回転目標を登録解除します}} | ||
|also_tests | |also_tests | ||
|also_events= | |also_events= | ||
{{LSL DefineRow| | {{LSL DefineRow|{{LSLG/ja|at_target}}|{{LSLG/ja|not_at_target}}|位置目標に達したときのイベント}} | ||
{{LSL DefineRow| | {{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 | ||
}} | }} |
Latest revision as of 12:47, 25 February 2016
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: integer llTarget( vector position, float range );
この関数で、ある位置に到達したときに、スクリプトにそれを知らせることができます。
position を range と一緒に登録し、登録解除されるまで at_target と not_at_target のイベントを継続的に発生させ続けます。
llTargetRemove を使って目標を登録解除するためのハンドラを integer で返します。
• vector | position | |||
• float | range |
同じような関数が回転についてもあります: llRotTarget
この関数はオブジェクトを移動させません。移動させるには、 llSetPos や llMoveToTarget を使用します。
警告
サンプル
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("オブジェクトは目標範囲に入っています");
llOwnerSay("目標位置: " + (string)targetpos + ", オブジェクトの現在位置: " + (string)ourpos);
llOwnerSay("これは目標から " + (string)llVecDist(targetpos, ourpos) + " メートル離れています");
llTargetRemove(target_id);
}
}
not_at_target()
{
llOwnerSay(
"まだ到達していません - オブジェクトは " + (string)llGetPos() +
" にあり, それは目標から " + (string)llVecDist(target_pos, llGetPos()) +
" メートル離れています (" + (string)target_pos + ")"
);
}
}
関連項目
イベント
• at_target | not_at_target | – | 位置目標に達したときのイベント | |
• at_rot_target | not_at_rot_target | – | 回転目標に達したときのイベント |
関数
• | llTargetRemove | – | 位置目標を登録解除します | |
• | llRotTarget | – | 回転目標を登録します | |
• | llRotTargetRemove | – | 回転目標を登録解除します |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。