Site search
2008年6月11日水曜日
ブラインドのスクリプト
ほんとに売れるようになってきたみたいでとても感動してます。ブログを始める直前まで1店舗閉めようかと悩んでたのが嘘のようです。皆様ありがとうございます^^
今回はタッチで伸縮するブラインドとかシャッターみたいなスクリプトです。
プリムは片開きのドアを作る要領でパスカットします。そして、Xの角度を270度にして向きを変え、プリムの中心から上がない状態にします。
私は回転させるといつも方向がわからなくなっちゃうんですがw 回転なしの状態で考えますと、プリムのY方向を伸縮させることになりますね^^
伸びたときのサイズは自動で取得させて、縮んだ状態は10cmになるようにします。
これならプリムのサイズを変えてもスクリプトは修正なしで使用できます^^
// ブラインド
vector scale;
float closed;
float open=0.1; // 縮めたときのサイズ
init()
{
// Y方向が伸びたときの値をclosedに入れる
scale=llGetScale();
if (scale.y > open) closed=scale.y;
}
default
{
state_entry()
{
init();
}
touch_start(integer total_number)
{
// Y方向のサイズで判断して伸縮
scale=llGetScale();
if (scale.y > open) scale.y=open;
else scale.y=closed;
llSetScale(scale);
}
changed(integer change)
{
if (change & CHANGED_SCALE)
{
// サイズが変わったらinit
init();
}
}
}
今回はタッチで伸縮するブラインドとかシャッターみたいなスクリプトです。
プリムは片開きのドアを作る要領でパスカットします。そして、Xの角度を270度にして向きを変え、プリムの中心から上がない状態にします。
私は回転させるといつも方向がわからなくなっちゃうんですがw 回転なしの状態で考えますと、プリムのY方向を伸縮させることになりますね^^
伸びたときのサイズは自動で取得させて、縮んだ状態は10cmになるようにします。
これならプリムのサイズを変えてもスクリプトは修正なしで使用できます^^
// ブラインド
vector scale;
float closed;
float open=0.1; // 縮めたときのサイズ
init()
{
// Y方向が伸びたときの値をclosedに入れる
scale=llGetScale();
if (scale.y > open) closed=scale.y;
}
default
{
state_entry()
{
init();
}
touch_start(integer total_number)
{
// Y方向のサイズで判断して伸縮
scale=llGetScale();
if (scale.y > open) scale.y=open;
else scale.y=closed;
llSetScale(scale);
}
changed(integer change)
{
if (change & CHANGED_SCALE)
{
// サイズが変わったらinit
init();
}
}
}
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿