Difference between revisions of "LlPassTouches/ja"
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) m (Undo revision 849272 by Mako Nozaki (Talk)) |
Mako Nozaki (talk | contribs) |
||
Line 1: | Line 1: | ||
{{LSL_Function/ja | {{LSL_Function/ja | ||
|func_id=154|func_sleep=0.0|func_energy=10.0 | |func_id=154|func_sleep=0.0|func_energy=10.0 | ||
|func=llPassTouches|p1_type=integer|p1_name=pass | |func=llPassTouches|p1_type=integer|p1_name=pass|p1_desc=真偽値。 {{LSLG/ja|TRUE}} であれば、タッチ情報が子から親に伝達されます。 | ||
|p1_desc= | |func_footnote=タッチイベントに対して処理を行うスクリプトがない場合は、デフォルトで {{LSLG/ja|TRUE}} です。 | ||
|func_footnote= | |func_desc={{LSLG/ja|Primitive|プリム}} の項目 pass-touch を設定します。 | ||
|func_desc= | |||
|return_text | |return_text | ||
|spec | |spec | ||
|caveats= | |caveats=ルートプリムでは ({{LSLG/ja|TRUE}} が設定されても {{LSLG/ja|FALSE}} が設定されても) 何も起こりません。タッチ情報は、'''子に touch イベントのスクリプトがなければ'''、子のスクリプトの別のイベントで {{LSLG/ja|TRUE}} が設定されていても {{LSLG/ja|FALSE}} が設定されていても、常にルートプリムに伝達されます。子プリムからのタッチ情報をブロックしたければ、'''touch イベントがついた''' スクリプトを子プリムに加えなければなりません。これはデフォルトで '''伝達しない''' となります。 | ||
|constants | |constants | ||
|examples | |examples=2 個のプリムからなる {{LSLG/ja|LINK_SET|リンクセット}} (オブジェクト) を作成しましょう。ルートプリムを "Parent" とし、子プリムを "Child" とします。ルートプリムにこのスクリプトを追加しましょう。 -<lsl>integer told; | ||
default | |||
{ | |||
state_entry() | |||
{ | |||
told = FALSE; | |||
} | |||
touch_start(integer total_number) | |||
{ | |||
if(!(llDetectedLinkNumber(0) == llGetLinkNumber()))// このように条件文を使って、タッチが発生したプリムを除外します。 | |||
{ | |||
llSay(0, "あなたが触ったって、うちの子が言ってたの。 Abuse Report を出すわよ。");// 子プリムが 2 回タッチされた場合にのみ表示されます。 | |||
told = TRUE; | |||
} | |||
else | |||
{ | |||
if(!told) | |||
llSay(0, "どうぞお好きにお触りください。");// 知らない親はあなたを誘います。 | |||
else | |||
llSay(0, "やろうと思ったらあなたの手なんか切り落としてしまえるんだからね!");// これ以上触るな | |||
} | |||
} | |||
}</lsl>そして、子プリムにこのスクリプトを追加します -<lsl>integer once_is_too_often; | |||
default | |||
{ | |||
state_entry() | |||
{ | |||
llPassTouches(FALSE);// 経験のない子は、最初は何を言えばいいかわかりません。 | |||
once_is_too_often = FALSE; | |||
} | |||
touch_start(integer total_number) | |||
{ | |||
if(llDetectedLinkNumber(0) == llGetLinkNumber())// 再び誰が触ったかチェックします。 | |||
{ | |||
if(!once_is_too_often) | |||
{ | |||
llSay(0, "今度触ったら言いつけるぞ。"); | |||
llPassTouches(TRUE); // しかし 2 回目は、言いつけます。 | |||
once_is_too_often = TRUE;// そしておとなしくなります。 | |||
} | |||
} | |||
} | |||
}</lsl> | |||
|helpers | |helpers | ||
|also_events= | |also_events= | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|touch_start}}|}} | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|touch}}|}} | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|touch_end}}|}} | ||
|also_functions= | |also_functions= | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llPassCollisions}}|}} | ||
|also_tests | |also_tests | ||
|also_articles | |also_articles |
Revision as of 05:58, 6 May 2010
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: llPassTouches( integer pass );警告
サンプル
2 個のプリムからなる リンクセット (オブジェクト) を作成しましょう。ルートプリムを "Parent" とし、子プリムを "Child" とします。ルートプリムにこのスクリプトを追加しましょう。 -<lsl>integer told;
default {
state_entry() { told = FALSE; } touch_start(integer total_number) { if(!(llDetectedLinkNumber(0) == llGetLinkNumber()))// このように条件文を使って、タッチが発生したプリムを除外します。 { llSay(0, "あなたが触ったって、うちの子が言ってたの。 Abuse Report を出すわよ。");// 子プリムが 2 回タッチされた場合にのみ表示されます。 told = TRUE; } else { if(!told) llSay(0, "どうぞお好きにお触りください。");// 知らない親はあなたを誘います。 else llSay(0, "やろうと思ったらあなたの手なんか切り落としてしまえるんだからね!");// これ以上触るな } }
}</lsl>そして、子プリムにこのスクリプトを追加します -<lsl>integer once_is_too_often;
default {
state_entry() { llPassTouches(FALSE);// 経験のない子は、最初は何を言えばいいかわかりません。 once_is_too_often = FALSE; } touch_start(integer total_number) { if(llDetectedLinkNumber(0) == llGetLinkNumber())// 再び誰が触ったかチェックします。 { if(!once_is_too_often) { llSay(0, "今度触ったら言いつけるぞ。"); llPassTouches(TRUE); // しかし 2 回目は、言いつけます。 once_is_too_often = TRUE;// そしておとなしくなります。 } } }}</lsl>
関連項目
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。