
スクリプトのお勉強 ②
2008年07月19日
小さいとき(まだ幼い少女だったころ^^;)見たことがある、
昔のルマンのCカー(かな?)、AZ-1のように
上にあくドアが昔ありましたね。
なんていうんだろう、ガルウィングとは違うのかな(^^;)
昨日、スクリプトのお勉強①で作った2つのスクリプトを
合体して作りました。
これは、プリムの中心、蝶番を作らずに作りました。
別々のスクリプトで動かしたら、LOCAL座標が変になっちゃった。
それぞれGetLocalを取得してるから当たり前ですけどね。
なので、1つのスクリプトに回転と上下を入れました。
動きは上に移動してから回転といった感じです。
戻るときは、命令を逆にしました。


★ 昨日のスクリプトを合体させただけです。
***********************
integer isOpen = FALSE;
vector defpos;
vector opendoor;
vector idodoor = < 0,0.09,-1>;
default
{
touch_start(integer total_number)
{
defpos = llGetLocalPos();
rotation doorRot = llGetLocalRot();
if(isOpen==FALSE){
opendoor = defpos - idodoor ;
llSetPos(opendoor);
llSetLocalRot(doorRot * llEuler2Rot(<45,0,0 * DEG_TO_RAD>));
isOpen = TRUE;
}else{
llSetLocalRot(doorRot * llEuler2Rot(<-45,0,0 * DEG_TO_RAD>));
opendoor = defpos + idodoor ;
llSetPos(opendoor);
isOpen = FALSE;
}
}
}
*************************
お詫び、tabがなく見づらくてすみません。
昔のルマンのCカー(かな?)、AZ-1のように
上にあくドアが昔ありましたね。
なんていうんだろう、ガルウィングとは違うのかな(^^;)
昨日、スクリプトのお勉強①で作った2つのスクリプトを
合体して作りました。
これは、プリムの中心、蝶番を作らずに作りました。
別々のスクリプトで動かしたら、LOCAL座標が変になっちゃった。
それぞれGetLocalを取得してるから当たり前ですけどね。
なので、1つのスクリプトに回転と上下を入れました。
動きは上に移動してから回転といった感じです。
戻るときは、命令を逆にしました。


★ 昨日のスクリプトを合体させただけです。
***********************
integer isOpen = FALSE;
vector defpos;
vector opendoor;
vector idodoor = < 0,0.09,-1>;
default
{
touch_start(integer total_number)
{
defpos = llGetLocalPos();
rotation doorRot = llGetLocalRot();
if(isOpen==FALSE){
opendoor = defpos - idodoor ;
llSetPos(opendoor);
llSetLocalRot(doorRot * llEuler2Rot(<45,0,0 * DEG_TO_RAD>));
isOpen = TRUE;
}else{
llSetLocalRot(doorRot * llEuler2Rot(<-45,0,0 * DEG_TO_RAD>));
opendoor = defpos + idodoor ;
llSetPos(opendoor);
isOpen = FALSE;
}
}
}
*************************
お詫び、tabがなく見づらくてすみません。