ソラマメブログ
プロフィール
ぺんぎん
ぺんぎん
どもっす( ◎v◎ )
ぺんぎんっす。

「ぺんぎんさん」でいいっす。
「ぺんさん」でもOKっすよ。
何だって良いんっすけどね。
[個体名:Naoya Bellic]
(非商用)
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 1人

2010年12月19日

講座5回目の宿題についてっす

llTextBoxがViewer 2.4.0で動くようになったっす。
もちろん課題に使っても良いっすよ。
入力文が不正な文字列かどうかの判別も加わることになるっすから、
難易度は高い、というか面倒くさいっすね。
どうもぺんぎんっす( ◎v◎ )


講座5回目の宿題についてのヒントっす。
宿題は
「オブジェクトにアバターが座っている状態で他のアバターが座ったら、
新たに座ったアバターを全員立たせる」
ってやつっす。
座っているアバターを1人だけにしたいわけっす。

講座5回目のときにヒントで出したんっすけど
llGetNumberOfPrims…オブジェクトのプリム数+座っているアバター数
llGetObjectPrimCount…オブジェクトのプリム数
これを使うっす。
引けば座っているアバターの数が得られるっすよね。
複数人座っているときには差が2以上になるっす。
差が1になるまで処理(llUnSit)させれば良いわけっすね。

「既に座っていたアバター」かどうかは、リンク番号を見るっす。
3プリムのオブジェクトにアバターA、B、Cが順に座った場合、
リンク番号1:ルートプリム
リンク番号2:子プリム
リンク番号3:子プリム
リンク番号4:アバターA
リンク番号5:アバターB
リンク番号6:アバターC
となるっす。
どんどん後ろに足していくイメージっす。
(リンク周りでちょっと実験をしてみたっす。「続きを読む」でどうぞっす。)
リンク番号が(プリム数+1)なのが「先に座ったアバター」のアバターA
以降のリンク番号5と6が「後に座ったアバター」のアバターB、Cっす。

これだけのことが頭に入ってれば書けると思うんっすけど、
分からなければオフィスアワーまで聞きに来てくださいっす。

あ、for/while文じゃなくても書けるっすよ。
アバターをllUnSitで立たせると、リンク数が変わるので
changedイベントが起きるっす。
「リンク番号最後のアバターが最初に座っていたアバターでなければ
立たせる(llUnSit)」
とchangedイベントに記述しておけば、
Cが立つ→changedイベント起動→Bが立つ→changedイベント起動
 →Aは最初に座っていたアバターなので何もしない
となって、めでたく完成っす。
こっちもアリっすね。


for/while文でやろうとして困った場合、カウンタ変数がどんな値なのか
見てみると良いっすよ。
llOwnerSayしてみるのが手っ取り早いっすかね。
for(i = 0; i < 10; ++i)
{
  llOwnerSay((string)i);
}
みたいに、中でllOwnerSayすれば良いっすね。


後は頑張ってみてくださいっす。
いろいろと気になるケースがあったので調べてみたっす。
以下で出てくるオブジェクト(1)も(2)も1プリムのオブジェクトっす。

・オブジェクト(1)にアバターAが座っている状態で、
 オブジェクト(2)をリンクしたらどうなる?

(1)がルートプリム、(2)は子プリムとなるようにした場合も
(2)がルートプリム、(1)が子プリムとなるようにした場合も
リンク番号1と2がオブジェクトで、3がアバターになったっす。
プリム-アバター-プリムとはならないみたいっすね。

・オブジェクト(1)にアバターAが座っている状態で、
 アバターBが座っているオブジェクト(2)をリンクしたらどうなる?

アバターAの方がアバターBよりも先に座ってるっす。
この場合は座った順番じゃなくって、
どっちがルートプリムになるかで決まるっす。
オブジェクト(1)がルートプリムになった場合のリンク番号順は
オブジェクト(1) - オブジェクト(2) - アバターA - アバターB
オブジェクト(2)がルートプリムになった場合のリンク番号順は
オブジェクト(2) - オブジェクト(1) - アバターB - アバターA
となったっす。


一連の実験からすると、
「リンク番号最後のアバターを立たせる」とやっておけば良いみたいっす。
リンク番号最後がプリムだったーっていうのは起こらない模様っす。
リンク番号はスクリプトを書かないと触れる機会は無いと思うので
この際にいろいろ覚えるのも良いかもっすね。


同じカテゴリー(デジアカ)の記事
 全6回のまとめっす (2011-02-07 19:50)
 締め切りについてっす (2011-01-12 00:35)
 質問は12月いっぱいまでっすよ (2010-12-05 14:02)
 講座6回目っす (2010-11-21 01:09)
 講座4回目の宿題についてっす (2010-11-13 16:53)
 講座5回目っす (2010-11-07 00:32)

Posted by ぺんぎん at 23:46│Comments(0)デジアカ
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。