2008年02月26日
【講座】誰でもできるLSL touch
しばらくお休みしてました。jvnです。
風邪はなおったけど、いろいろと忙しくなってきちゃいました><
講座は 今までどおり毎日というわけにはいかなさそうです。。
普通のブログを毎日つけるようにがんばります。
最近、調べものがあって LSL Portal と LSL Wiki をみてました。
http://jvn.slmame.com/e147567.html
前者はリンデン公式だけど重く、後者は有志のもので軽いです。
関数のリストなどは、公式のものが正確なのですが、
関数の挙動に関しては Wiki のほうが情報量が細かく、正確なようでした。
とくに今回しらべていた物理系の情報は LSL Wiki がすごかったですね。
情報を拡散させるな!
IncSearch も対応しなくちゃいけないなぁ。。。
LSL 講座 リンク
ここをチェック。
Detected 関数を知ります
List の使いかたを学びます
先日おこなった 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
冒頭でも書いたとおり、あまりブログに時間がさけなくなってきました><
初心者用の記事は質問があったら書きます。
中級者以上の Tips を今後書いていきます。
いま、調べているのは物理関係の情報。
Havok4 が導入されたら今後メジャーになってきそうな予感です。
Wiki の裏側の話し等。
ソースはこちら
http://chiyosuke.slmame.com/e68741.html
ビューアをアセンブリ解析して、効率的なメモリの使い方や
動作速度の向上を図られています。
Chiyosuke さん かっこよすぎです。
あと、LSL Wiki や Portal にあるスクリプトライブラリ から
スクリプトをひっぱってきて挙動の勉強をしてみたいと思います。
こちらは より実践編ですね。
これからも よろしくお願いします。
LSL 講座 リンク
風邪はなおったけど、いろいろと忙しくなってきちゃいました><
講座は 今までどおり毎日というわけにはいかなさそうです。。
普通のブログを毎日つけるようにがんばります。
最近、調べものがあって 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 さんの名前を間違えていました。失礼しました
Chiyosuke さんの名前を間違えていました。失礼しました
【中級】センサースクリプトに挑戦
【講座】誰でもできるLSL Listen
【講座】誰でもできるLSL timer
【講座】誰でもできるLSL IF 質問
【講座】誰でもできるLSL IF
【講座】誰でもできるLSL 変な数
【講座】誰でもできるLSL Listen
【講座】誰でもできるLSL timer
【講座】誰でもできるLSL IF 質問
【講座】誰でもできるLSL IF
【講座】誰でもできるLSL 変な数
Posted by Jvn Writer at 12:10│Comments(0)
│LSL講座