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

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

2010年10月13日

10/9(土)のオフィスアワーっす

次の講座まで10日もあるっすねぇ。
4回目のお題についての質問が無いところを見ると、
調べたりするのは順調に進んでるみたいっすね。
どうもぺんぎんっす( ◎v◎ )


オフィスアワーはデジアカの受講者じゃなくてもOKっす。
質問が多数出た場合に優先するってだけっす。
別に講座の質問じゃなくて、他のスクリプトの話でも良いっす。
誰でもウェルカムっすよ。

講座3回目の原稿など
10/6(水)のオフィスアワー


ただのブロック
 ifでもなくforでもなくwhileでもないのに{ }で囲った文っす。
 なので「ただのブロック」と呼んでるだけっす。
 default
 {
   state_entry()
   {
     integer a = 2;
     { // ※
       integer a = 3;
       llOwnerSay("inner block: " + (string)a);
     } // ※
     llOwnerSay((string)a);
   }
 }
 例えばこんなやつっす。
 LSLEditorではダメなんっすけど、in-worldでは通るっす。
 ちなみに※の行に書いてある{ }を消すとコンパイルエラーが出るっす。
 [state_entryのa]と[state_entryの、さらに内側のa]
 2つあると考えれば良さそうっす。
 [state_entryの、さらに内側のa]の有効範囲は、内側のブロックが
 終わるまでの部分になるっす。
 こういった「ただのブロック」は書いたことが無いので、
 どんなときに使うと有効なのかは分かんないっす。
 何か意図があったんだろうと思うんっすけど、
 自分には分からなかったっす。

宿題の答え
 無いっす。
 考え方が無数にあって、どれが正しいなんてのは言えないっす。
 考え方によって方法も違ってくるっすからね。
 自分の方で想定しているスクリプトは一応あるっす。
 でも、それを出しちゃうと、それが「正解」みたいに取られるっす。
 それは避けたいわけっす。
 考え方の1つとしてーなら出しても良いのかもしれないっすけど、
 うーん……難しいっすねぇ。

正しく動いてる? / 値がアヤシイ?
 何かおかしいと思ったら、その値を出してみれば良いっす。
 llOwnerSayとかを使えば確認できるっすよね。


オフィスアワーは水曜日と、講座の無い土曜日っす。
今日もやるっすよ。






同じカテゴリー(デジアカ)の記事
 全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 19:08│Comments(2)デジアカ
この記事へのコメント
これはもしかしてreturnで出る時やローカル変数使う際に意味が出たりするんですかね?
Posted by Maaya Yohkoh at 2010年10月16日 05:18
処理の塊を明示的に分けたい場合はユーザ関数を使うっすからねぇ。

ご指摘のreturnはブロックの内側でのことだと思うんっすけど、
ブロックのreturnまでのところをユーザ関数にして、
そのあとreturnさせれば同じじゃないっすかね?
イベント内でもユーザ関数でも言えるっす。
ただ、jumpとかが書いてあったらダメっすけどね。

ユーザ関数で書いた方が分かりやすいので
「ただのブロック」は不要なんじゃないかと思うんっすけど、
何か特別な用途があるんっすかね?
for(integer i = 0; …
という書き方がLSLでは無いっすからねぇ。
うーん……
Posted by ぺんぎんぺんぎん at 2010年10月18日 00:48
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。