ソラマメブログ

Redzone LSL

SecondLife の仮想店舗 「Redzone」 クリエイターによるスクリプトメモ

RedzoneOfficialBlog
RedzoneOfficialBlog

Redzone 公式ブログは移転しております。
商品案内・新作情報などはこちらをご覧下さい。
http://redzonesl.blog12.fc2.com/

2010年02月12日

第06回 速度検出HUD

第03~05回にかけて速度の求め方・小数点以下の四捨五入の事を書いてきましたが相当無駄なことをしていたようでface07
無理矢理作ったユーザー関数二つ分がなんと一行で書けてしまいましたface08 コメント頂いた方、ありがとうございましたm(_ _)m
では、当初よりすごく簡単になった小数第二位表示の速度検出HUDです。

float time = 0.5; // 速度検出のタイミング
integer switch;

default
{
state_entry()
{
switch = 1;
llSetTimerEvent(time);
}

touch_start(integer num_detected)
{
if (switch == 0){
switch = 1;
llSetTimerEvent(time);
}else{
switch = 0;
llSetText("",ZERO_VECTOR,0);
llSetTimerEvent(0.0);
}
}

timer()
{
llSetText(llGetSubString((string)(llRound(llVecMag(llGetVel()) * 3.6 * 100)/100.0), 0, -5) + " km/h", <1,1,1>, 1);
}
}

タッチでスイッチの切替、タイマーイベント内で速度を検出しフローティングテキスト表示です。

llGetVel ----- vector値の速度(m/h)を得る
llVecMag ----- ベクトルの長さを計算
llRound ----- (3.6倍で時速換算、100倍したものの) 小数点以下を四捨五入
割る100で小数に戻して文字列に変換
llGetSubString ----- 後ろの余計な0を削除



同じカテゴリー(スクリプト)の記事画像
第03回 llGetVel() を使って速度を算出
同じカテゴリー(スクリプト)の記事
 第08回 キー入力検出 (2010-03-01 02:02)
 第07回 世界時計 (2010-02-14 16:53)
 第05回 小数点以下を任意の桁数で四捨五入する (2010-02-11 14:43)
 第04回 llGetVel() を使って速度を算出 (2010-02-09 18:31)
 第03回 llGetVel() を使って速度を算出 (2010-02-07 01:23)
 第02回 リンクメッセージ (2010-02-04 02:32)
Posted by Redzone at 10:04│Comments(0)スクリプト
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。