LlDetectedTouchST/ja
From Second Life Wiki
メインページ > LlDetectedTouchST > LlDetectedTouchST/ja
関数: vector llDetectedTouchST( integer index );
touch された点の、プリム面上の座標のvector値を返します。
| • integer | index | – | 探知情報の番号 |
index には負のインデックスを使用できません。
touch 系イベントでのみ有効です。touch されたプリムとイベントが処理されるプリムは別かもしれません。これは llDetectedLinkNumber でチェックできます。同様に、どの面が touch されたかは llDetectedTouchFace でチェックできます。
x, y 座標はそれぞれ水平 (s), 垂直 (t) の面座標に対応します (<s, t, 0.0>)。それぞれは [0.0, 1.0] の範囲にあります。
面座標を取得できなかった場合は TOUCH_INVALID_TEXCOORD が返されます。詳細は 警告 を参照してください。
警告
- index が正常なインデックス範囲を外れていても、スクリプトはエラー表示を出さずに処理を続けます。
- 以下の場合は TOUCH_INVALID_TEXCOORD が返されます:
- アバターのビューアが touch 面の検出に対応していない。
- ビューアの対応は llDetectedTouchFace の戻り値でチェックできます。
- touch 点がプリムの表面から外れた。
- touch 点を取得できないほど、touch 点が面の端に近すぎた。
- この関数を呼び出したイベントが touch 系イベントでない。
- アバターのビューアが touch 面の検出に対応していない。
例
default { touch_start(integer num_detected) { integer i = 0; for(; i < num_detected; ++i ) { vector touchedpos = llDetectedTouchST(i); if (llDetectedTouchFace(i) == -1) { llWhisper(0, "ビューアが touch 面の検出に対応していません。"); } else if ( touchedpos == TOUCH_INVALID_TEXCOORD ) { llWhisper(0, "touch 点を取得できませんでした。"); } else { llWhisper(0, (string) touchedpos); } } // while ... } // touch_start }
vector touchedLoc; default { // touch された点にクロスヘアを描く touch(integer num_detected) { integer i; for (i = 0; i < num_detected; i++) { touchedLoc = llDetectedTouchST(i); // touch された面座標 llSetPrimitiveParams([PRIM_TEXTURE, llDetectedTouchFace(i), "5ac7995c-4c24-8b60-ae61-6a837619dc75", <1.0,1.0,0.0>, touchedLoc, 180*DEG_TO_RAD]); /// touch 点をテクスチャ座標として設定する } } }
// 指定した列数・行数 (以下では 12x12) でテクスチャをタイル状に敷き詰めておき、 // どの格子に touch されたかを答える。 float x=12.0; float y=12.0; integer Pos; default{ touch_start(integer total_number){ if (llDetectedTouchFace(0) == -1) llOwnerSay("old client"); else{ vector pos = llDetectedTouchST(0); Pos = ((llFloor((pos.x*10)*x)/10)*(integer)y)+llCeil(pos.y*y); llOwnerSay((string)Pos); } } }
関連項目
イベント
| • | touch_start | |||
| • | touch | |||
| • | touch_end |
関数
| • | llDetectedLinkNumber | |||
| • | llDetectedTouchFace | |||
| • | llDetectedTouchUV | |||
| • | llDetectedTouchPos | |||
| • | llDetectedTouchNormal | |||
| • | llDetectedTouchBinormal |
項目
| • | Detected |
ディープノート
経緯
Introduced in Viewer SVN:870 r92872 Branch:Release Wednesday, 23 July 2008, Supported by Beta Server 1.24.0.93754 (Wenesday 6th August 2008), and viewer binary 1.20.15 (93532).
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。

