Site search
2008年9月7日日曜日
暗くなると自動点灯するランプのスクリプト
今回は太陽が沈んで暗くなったら自動で点くランプのスクリプトです^^
今回もとても簡単なスクリプトなので、ホントはもうひと工夫ほしいところなんですけどw でもまあ、わかりやすくていいかなって思います^^;
llGetSunDirectionで太陽の方向を調べられるんですね。関数の戻り値がベクターなので、このZの値が0以上だったら太陽が昇ってるって感じですね。
ベクター型変数(ベクトル型)で v を定義したらZの値は v.z で扱えます。
vector v;
v=<v.x, v.y, v.z>;
なので
vector v=<1.0, 2.1, 3.4>;
だったら v.z=3.4 ですね
タイマーで一定時間ごとに太陽の高さを調べて、地平線より下だったらランプを点灯させます。
ランプはllSetPrimitiveParamsでグローとライトを使いました。
でも太陽の方向って、ビューワーを自分好みで昼や夜に変えても変わらないんですよねw
今回もとても簡単なスクリプトなので、ホントはもうひと工夫ほしいところなんですけどw でもまあ、わかりやすくていいかなって思います^^;
llGetSunDirectionで太陽の方向を調べられるんですね。関数の戻り値がベクターなので、このZの値が0以上だったら太陽が昇ってるって感じですね。
ベクター型変数(ベクトル型)で v を定義したらZの値は v.z で扱えます。
vector v;
v=<v.x, v.y, v.z>;
なので
vector v=<1.0, 2.1, 3.4>;
だったら v.z=3.4 ですね
タイマーで一定時間ごとに太陽の高さを調べて、地平線より下だったらランプを点灯させます。
ランプはllSetPrimitiveParamsでグローとライトを使いました。
// 暗くなると自動点灯するランプ
default
{
state_entry()
{
llSetTimerEvent(30); // タイマー30秒ごと
}
timer()
{
vector v=llGetSunDirection(); // 太陽の方向
if (v.z < 0) { // 太陽が沈んでたら
llSetPrimitiveParams([
PRIM_GLOW,ALL_SIDES,0.2, // グロー0.2
PRIM_POINT_LIGHT,TRUE,<1,1,1>,1.0,10.0,0.75]); // ライト点ける
}
else { // そうじゃないとき
llSetPrimitiveParams([
PRIM_GLOW,ALL_SIDES,0.0, // グローなし
PRIM_POINT_LIGHT,FALSE,<0,0,0>,0,0,0]); // ライト消す
}
}
}
でも太陽の方向って、ビューワーを自分好みで昼や夜に変えても変わらないんですよねw
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿