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

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

2010年09月11日

9/8(水)のオフィスアワーっす

土曜日になっちゃったっすけど、9/8の分をまとめたっす。
こんな感じで毎回書いていこうと思うっす。
次回からはもっと早く出すようにするっすね。
どうもぺんぎんっす( ◎v◎ )


使った原稿なども一緒に見ると良いっす。
話題に出てきた順に書いていくっすね。
今日もNew Script SIMのカフェでやるっすよ。

・宿題その1について
宿題その1は「Touchすると自己紹介文をSayするオブジェクトを作れ」
というものっす。
必要なものだけ書いて来てくださいっす。
(つまり、state_entryイベントはいる?いらない?)

・if文について
第2回のお題のところからの質問っす。
お題で出てくる
if(llDetectedType(0) & AGENT)
の & って、論理積(AND演算)の記号じゃないの?
という質問というか、確認みたいな感じだったっす。
これはズバリAND演算をしてるっす。
ぜひ調べておいて欲しいんっすけど、
http://wiki.secondlife.com/wiki/If/ja
LSL portalに出てるっす。
integer 0でない場合はTrue
となってるっすよね。
つまりAND演算をした結果
0でなければ「真」、0ならば「偽」というわけっす。
乗り物なんかを作るときにもこの「if文で&」を多用するっすから、
マスターしておきたいところっすね。

・じゃあ、llDetectedType(0)もAGENTもinteger?
そうっすよ。
llDetectedTypeの説明にある
integer llDetectedType( integer number );
これの説明をしてなかったんっすねぇ。
右側の部分、llDetectedType( integer number );
ここは講座の中で出したっすね。
カッコの中にinteger型の「何か」を入れれば動くわけっす。
問題は頭についてるintegerの意味っすね。
llDetectedType(何か)の結果がinteger型になりますよ、
ってことを表してるっす。
例えばカッコに0を入れたllDetectedTyoe(0)、
これはinteger型の値っす。なのでAND演算もできたわけっすね。
普通はしないっすけど、integer型なので足し算もできるっすよ。
default
{
  touch_start(integer total_number)
  {
    integer sum;
    sum = llDetectedType(0) + 1; // integer型の足し算
    llOwnerSay((string)sum);
  }
}

・ところで、llDetectedType(0)の(0)って何?
講座2回目のときに説明しようと思ってたっす。
でも聞かれたので答えちゃうっすね。
2回目のお題で
  collision_start(integer total_number)
こんなのがあったっすよね。
collision_startイベントが起きた時、
(つまりオブジェクトがコリジョン(衝突)された時に)
それがどんな状況であったのかが保管されるっす。
total_numberっていうのは、その保管されている情報が全部で
いくつあるか、っていう「数」っす。
要は何個にコリジョン(衝突)されたかっすね。
で、引数の0っていうのは、その保管されている情報の
「番号(インデックス)」っす。
実際に何とぶつかったのかはllDetectedなんとかを使うと
その保管されている情報を取って来れるっす。
例えばllDetectedKey(0)を使うと
衝突したモノの中で0番のUUIDが得られるっす。
間違えやすいんっすけど、番号(インデックス)は0から始まるっす。
数(=total_number)が1のときは0番だけに、
数が2のときは0番と1番に、
数が3のときは0, 1, 2番に情報が入ってるという具合っす。
それぞれllDetectedなんとか(0), llDetectedなんとか(1),
llDetectedなんとか(2)で情報が取り出せるわけっす。

・UUIDって?
あの後ちょっと調べてみたっす。
汎用一意識別子(Universally Unique Identifier)の略らしいっすね。
SLでは36文字の文字列をkey型として使ってるっす。
UUIDはkey型の値として使いますよーってことを覚えておけば、
困ることは無いと思うっすよ。

・関数とかイベントのカッコの中のことは何て言うの?
引数(ひきすう)とかパラメータって言うっすね。
(細かく言うと、関数に渡す値なので実引数っすね)
llSayみたいに引数が2つある場合は
左から順に第1引数、第2引数と言ったりもするっす。
例:llSayの第1引数はinteger型である。

・state_entryは必要が無くても書いておくべき?
むかーし、残しておく流派もあったんっすけど、
必要無ければ消して良いっすよ。
講師陣2人と1羽は全員消すというので一致したっすね。
「おまじない」なんっすかねぇ?

・state_entryイベントって、ややこしくない?
実はややこしいっすよ。
http://wiki.secondlife.com/wiki/State_entry/ja
ここに「どんなときに起こるか」っていうのが載ってるっす。
「スクリプトの最初」はなくて「defaultの最初」みたいに覚えれば
比較的感覚は掴みやすいんじゃないかと思うっす。

・2回目のお題、動かないよ?
いや、間違いなく動くっすよ。
いろいろ試してみてくださいっす。


まとめるとだいたいこんな感じだったっす。
まとまってない様な気も…


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

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