ソラマメブログ

2008年02月26日

【講座】誰でもできるLSL touch

しばらくお休みしてました。jvnです。
風邪はなおったけど、いろいろと忙しくなってきちゃいました><
講座は 今までどおり毎日というわけにはいかなさそうです。。
普通のブログを毎日つけるようにがんばります。

最近、調べものがあって LSL Portal と LSL Wiki をみてました。
http://jvn.slmame.com/e147567.html
前者はリンデン公式だけど重く、後者は有志のもので軽いです。
関数のリストなどは、公式のものが正確なのですが、
関数の挙動に関しては Wiki のほうが情報量が細かく、正確なようでした。
とくに今回しらべていた物理系の情報は LSL Wiki がすごかったですね。
情報を拡散させるな!
IncSearch も対応しなくちゃいけないなぁ。。。


LSL 講座 リンク

復習




list NAMES_l;
default
{
touch_start(integer num)
{
if(llDetectedKey(0) == llgetOwner()){
llSay(0,"君はオーナーだ");
}

if(llListFindList(NAMES_l, [llDetectedName(0)])>-1){
NAMES += llDetectedName(0);
}
}
}


ここをチェック。

  • 流れはわかるか

  • if文の条件式の中身がわかるか




今日学ぶこと



Detected 関数を知ります
List の使いかたを学びます


Detected関数



先日おこなった Listen イベントでは、誰が発言したか、という情報を
引数で取得することができました。

では、タッチイベントも引数で 誰がタッチしたのか得られるか、、
と思いきゃ 引数は integer型がひとつだけ。。

実は、タッチやセンサーのイベントでは
llDetected○○○ という関数を使って、イベントを起こした人の情報を得ます。


Detected は 検出された という意味です
いま、英辞郎を調べました。 へ~

IncSearch で llDetected と検索してみましょう
10個の関数がありますね

これだけ 情報を得ることができるということです

こんかいは llDetectedName というのを使いましょう


引数について説明が必要です
integer number とは?

これは、イベントに入るときに検出されたものが
複数ある場合につかいます

こんかいは touch_start なので 一人しか検出されません

これが touch イベントだと タッチ中の人が複数人 同時に検出されることがあります。
センサーイベントの場合は 範囲に含まれる人がいっきに検出されるので、これも該当しますね。

イベントの引数の numberは検出された人の数になります

複数人いた場合は、0からはじまるインデックスが振られます

5人なら 0~4 のインデックスがふられますね
このインデックス番号を Detected の引数に渡すと、該当する人の情報が得られます

普通タッチは、一人より多く取得できると困ることがおおいので
touch_start をつかいましょう

一人だけなので 0~0 つまり、0 決め打ちで大丈夫です


リスト



取得した名前を
name_l というリスト型の変数にしまっています。

リストというのは、複数の(リスト以外の)変数をしまっておける型です。

変数が箱なら
リストは 棚です。
何番目の棚から値を取り出す、とか
何番目の棚に値を入れる とかできます。

棚と違ってリストの大きさはむにゅむにゅのびちぢみします。

リストに += でリストを足すと
リストは伸びます

リストの使い方は 一言で説明しにくいところがあるので
今回は リストに値をどんどん入れていく方法だけにします><


オーナーだけ使える機能



これも よくある機能です。
おぼえてしまいましょう。
そのほかのバリエーションを、Mizさんがこちらの記事にまとめてらっしゃいます。
http://bb2.atbb.jp/lslbbs/viewtopic.php?t=8


まとめ



  • Detected を使いこなす

  • リストに値を格納する

  • 権限別機能の基本




今後のこと



冒頭でも書いたとおり、あまりブログに時間がさけなくなってきました><
初心者用の記事は質問があったら書きます。

中級者以上の Tips を今後書いていきます。

いま、調べているのは物理関係の情報。
Havok4 が導入されたら今後メジャーになってきそうな予感です。


Wiki の裏側の話し等。
ソースはこちら
http://chiyosuke.slmame.com/e68741.html
ビューアをアセンブリ解析して、効率的なメモリの使い方や
動作速度の向上を図られています。
Chiyosuke さん かっこよすぎです。

あと、LSL Wiki や Portal にあるスクリプトライブラリ から
スクリプトをひっぱってきて挙動の勉強をしてみたいと思います。
こちらは より実践編ですね。

これからも よろしくお願いします。

LSL 講座 リンク
2008/2/26
Chiyosuke さんの名前を間違えていました。失礼しました

同じカテゴリー(LSL講座)の記事
 【中級】センサースクリプトに挑戦 (2008-03-14 18:59)
 【講座】誰でもできるLSL Listen (2008-02-23 10:34)
 【講座】誰でもできるLSL timer (2008-02-22 12:00)
 【講座】誰でもできるLSL IF 質問 (2008-02-21 15:03)
 【講座】誰でもできるLSL IF (2008-02-21 12:10)
 【講座】誰でもできるLSL 変な数 (2008-02-20 12:05)
Posted by Jvn Writer at 12:10│Comments(0)LSL講座
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。