ぺんぎん
2010年10月13日
19:08
次の講座まで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とかを使えば確認できるっすよね。
オフィスアワーは水曜日と、講座の無い土曜日っす。
今日もやるっすよ。