Site search

Google
WWW を検索 backup-beta.blogspot.com を検索

2008年6月9日月曜日

タッチライト スクリプト

ブログで宣伝したらほんとに売れるのかなって思ってたんですが、少しずつ売れてきたような感じです(嬉
ご覧くださいました皆様、お買い上げ頂きましたお客様、本当にありがとうございます^^

簡単なスクリプトも記事にしていきますね^^
今回はタッチで点灯するランプです。タッチのときにスイッチの状態を判断して照明のオン、オフを切り替えます。

スイッチの状態は変数を使ったり、ステートを変えたりでも良いですが、今回はプリムの色をllGetColorでチェックして判断するようにします^^

色、ライト、グローをllSetPrimitiveParamsで設定します。
それぞれの数値は次のように決めました

点灯のとき
色(PRIM_COLOR) <1,1,1>
ライト(PRIM_POINT_LIGHT) TRUE,<1,1,1>,1.0,10.0,0.75
グロー(PRIM_GLOW) 0.3

消灯のとき
色(PRIM_COLOR) <0.75,0.75,0.75>
ライト(PRIM_POINT_LIGHT) FALSE,<0,0,0>,0,0,0
グロー(PRIM_GLOW) 0


// タッチライト
default
{
    touch_start(integer total_number)
    {
        // フェイス0の色が<1,1,1>だったらオフに
        if (llGetColor(0) == <1,1,1>) {
            llSetPrimitiveParams([
            PRIM_COLOR,ALL_SIDES,<0.75,0.75,0.75>,1.0,
            PRIM_POINT_LIGHT,FALSE,<0,0,0>,0,0,0,
            PRIM_GLOW,ALL_SIDES,0.0]);
        }
        // そうでないときはオンに
        else {
            llSetPrimitiveParams([
            PRIM_COLOR,ALL_SIDES,<1,1,1>,1.0,
            PRIM_POINT_LIGHT,TRUE,<1,1,1>,1.0,10.0,0.75,
            PRIM_GLOW,ALL_SIDES,0.3]);
        }
    }
}

PRIM_GLOWは1.20系のRelease Candidate版Viewerなら大丈夫ですが、普通の1.19はコンパイルエラーになるので整数値25にしてます^^

12月23日12時40分頃追記: 1.19以下の古いビューワーはもう使われないと思うので、整数値25にしてたところはPRIM_GLOWに直しときました。

4 件のコメント:

  1. おお!
    売れてきましたか^^
    それは、良かったーw

    返信削除
  2. そうみたいなんですよ^^
    今後に期待してブログのほうも頑張って書きたいと思いますー
    それからリンクありがとうございます。そちらのブログからも結構見に来てくれてます^^

    返信削除
  3. Ambrosia Miklos2008年8月20日 2:05

    はじめてスクリプトを自分で作ったものにスクリプトを入れるという作業にに挑戦しました。ボールをタッチしてちゃんとライトが点いたり消えたりした時は大興奮でした。これからも勉強させていただきます。ありがとうございます。

    返信削除
  4. スクリプトがきちんと動いたときってやっぱり嬉しいものですよね^^
    他人に上手く教えられるほど説明上手じゃないんですが宜しくお願いします

    返信削除