FC2ブログ
2008.03.1022:03

ブランコ

無料のブランコを手に入れたら中のスクリプトを見る事ができました。

この手に入れたブランコは少しぎこちないですので スムーズに動かしたのですけど
どこら辺を直したら良いのでしょうか?

--------------------------------------------------------
integer swing=FALSE; //So it starts out NOT swinging
float time=0.4; //Decreasing this (on it's own) makes the swing move FASTER and vice versa
integer steps=12; //The total number of steps in the swing's path. More steps=smoother swing. More steps (alone) means slower swing too - time for a complete swing cycle is steps * time (so 4.8 s with the default settings).
integer swingDegrees = 45; //How far from the vertical the swing moves

//If you play from here on down you might break the script. Do so at your own risk. There are no comments - just to encourage you NOT to play.

integer i=1;
float swingRad;
vector normal;

rotation Inverse(rotation r)
{
r.x = -r.x;
r.y = -r.y;
r.z = -r.z;
return r;
}
rotation GetParentRot()
{
return Inverse(llGetLocalRot())*llGetRot();
}
SetLocalRot(rotation x)
{
llSetRot(x*Inverse(GetParentRot()));
}

default
{
state_entry()
{
normal = llRot2Euler(llGetRot());
swingRad=DEG_TO_RAD*swingDegrees;
llSetTouchText("Swing");
}
touch_start(integer num)
{
if(swing)
{
swing=FALSE;
llSetTouchText("Swing");
}
else
{
swing=TRUE;
llSetTouchText("Stop swing");
llSetTimerEvent(time);
}
}
timer()
{
float stepOffset=(float)i/steps*TWO_PI;
if(i>steps) i=1;
if(swing==FALSE && (i==steps || i==steps/2))
{
llSetTimerEvent(0.0);
SetLocalRot(llEuler2Rot());
} else
{
SetLocalRot(llEuler2Rot());
i++;
}
}
moving_end()
{
normal=llRot2Euler(llGetRot());
}
}
スポンサーサイト



テーマ : Second life
ジャンル : ゲーム

コメントの投稿

非公開コメント

おそらく

integer steps=12;
この値を大きくすればいいのかな。

integer steps=12

integer steps=12の値を変えてもカクカク間は変わりませんでした。

ちょっと自分なりに調べてみます。
有り難う御座いました。
プロフィール

fuuAllen

Author:fuuAllen
三流クリエイターfuuAllrnの物作りセカンドライフ日記

カウンター
ワッサー
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
PIGGYBUY
PIGGYBUY
カテゴリー
ブロとも申請フォーム

この人とブロともになる

広告
セカンドライフ
フリーエリア
Twitter
ブログ内検索
RSSフィード
リンク