いやぁ、この連載も随分間が空いてしまいました。
今回含めて残りあと3回なんですけどね、
一気に行けそうなのに、なかなか時間がとれないでいます。
まぁ、のんびり最後までお付き合い下さい。
* * *
さて、前回は状態の判定をするのに
「1」と「0」を使う話をしました。
人間が物事を判断する基準は
大抵が「OK」か「NG」
「Yes」か「No」
「いい」か「悪い」
つまりは「真」か「偽」かに還元できるもので、
それだからこそ、コンピュータはその人間の真似をして
「1」と「0」との組み合わせだけで複雑な処理をするわけですね。
「1」と「0」の間で旗を上げ下げして処理を分岐するのは
いかにもコンピュータ・プログラムらしいとも言えますし、
同時に人間的と言えるのかもしれません。
ところで、物事の判断というのは
必ずしも二者択一であるとは限りません。
楽しいお昼休み、今日の昼食はどこにするか
ラーメンか牛丼かカレーか
はたまたイタリアンかフレンチか……?
結局は毎日のように行っていると飽きてしまうので、
これらの店に順繰りに行くかもしれません。w
今年のバーニングライフの
僕のキャンプにあった巨大なメッセージボードは、
実は20秒おきに色が変わる設定ができます。
確か7色くらいを設定して
順番に変わるようにしてあったのですが、
そこでどんな処理をしているかと言うと。。。
話を簡単にするために
色を青、赤、黄の3色に限定します。
そして、タッチするとタイマーがスタートするとしましょうか。
integer i = 0;
default {
state_entry(){
}
touch_start(integer total_number){
llSetTimerEvent(20);
}
timer(){
if (i=0){
llSetColor(<0.0, 0.0, 1.0>, ALL_SIDES);
} else if (i = 1){
llSetColor(<1.0, 0.0, 0.0>, ALL_SIDES);
} else if (i = 2){
llSetColor(<1.0, 1.0, 0.0>, ALL_SIDES);
}
i++;
if (i = 3) {
i = 0;
}
}
}
実際にはもっと複雑ですが、
大体こんなイメージです。
大事なのは、変えて行きたい色の順番に数字をふっておいて、
変更するごとに1を足しているところです。
(そう。i++ は i = i + 1 のことですね。
こういう略した書き方をするとプログラムも
シンプルにすっきりとするので
じゃんじゃん使いましょう。w)
そして、順番の最後のところで
数字を振り出しの「0」に戻してあげてるところですね。
これでまた1...2...と数え上げて行き、
またまた最後の所で0に戻り、、、と繰り返していくわけです。
先に書いたお昼に何を食べるか、という件も、
これをカレンダーに仕込んでおけば、
昨日はカレーを食べたから今日はイタリアン、
なんて教えてくれるかもしれません。w
あ、実際にはこれの応用で、
僕の Lifebound Records 本店のメッセージボードが稼働しています。
仲間のブログの最新記事を順繰りに表示していますが、
記事と合わせてその方のアイコンに変わるようになっているのも
この仕掛けが使ってあるのです。
それでは今日はこの辺で。
セカフェス4に黒縞屋が出演!
3 年前
No response to “スクリプトの話(18)〜3つ以上の状態判定”
Leave a Reply