2008年08月28日
LSL衝突判定できたっ!
こんにちは^^
前記事の・・・ターゲット・・・完成♪  ̄m ̄ ふふ
今日は・・・休みでよかった・・・・
苦節・・・14時間・・・~~~~~~~(;_ _)O パタ...
これわ・・・昨日の記事のコメントでヒントを下さった、いちおかさんのおかげですっ(o*。_。)oペコッ
ありがとうございました( ̄∇ ̄*)ゞエヘヘ
どの角度から撃っても・・・ばっちり(*^-゜)vィェィ♪
とゆうことで・・・LSL・・・公開っ ̄m ̄ ふふ
vector v; // 衝突位置を把握しちゃう変数
vector v2; // 的のオブジェクトの中心座標をいれる変数
vector P3; // 的上の点P3
vector P1; // 的上の点P1
vector P2; // 的上の点P2
vector HOUSEN; // 法線ベクトル計算用1
vector HOUSEN2; // 法線ベクトル計算用2
vector HOUSEN3; // 法線ベクトル計算用3
vector vec;
vector kekka; // 最終的な弾の跡をREZする位置を格納
vector v3; //速度ベクトル用
float a;
float b;
float t;
default {
collision_start(integer num_detected) { //衝突がおきちゃったら動くイベント
v = llDetectedPos(0); //弾の衝突位置をvに入れるっ
v2 = llGetPos(); //的のオブジェクトの中心座標をしらべる
v3 = llVecNorm(llDetectedVel(0)); //速度ベクトルを単位ベクトルに変換
P1 = <v2.x - 0.005, v2.y + 0.9 , v2.z + 0.5>; //点P1の座標ベクトル まとの大きさ x=0.01m y=1.8m z=1.0m
P2 = <v2.x - 0.005, v2.y + 0.9 , v2.z - 0.5>; //点P2の座標ベクトル
P3 = <v2.x - 0.005, v2.y - 0.9 , v2.z - 0.5>; //点P3の座標ベクトル
HOUSEN2 = P2 - P1 ;
HOUSEN3 = P3 - P1 ;
HOUSEN = HOUSEN2 % HOUSEN3 ; //外積の計算
HOUSEN = llVecNorm(HOUSEN); //法線の方向ベクトル・・・のつもり
vec = P1 - v ;
a = vec * HOUSEN;
b = v3 * HOUSEN;
t =( a / b );
kekka = v + v3 *t; //最終的な弾の跡のREZ位置
llRezObject("tamanoato",kekka,ZERO_VECTOR,ZERO_ROTATION,1);
}
}
効率とかは一切考えておりませんが・・・・(;´▽`A``
とりあえず、完成♪
いちおかさん、ありがとうございます♪ とても参考になりました^^
ベクトル・・・数年ぶり?に考えた・・・*o_ _)oバタッ
よかった、よかった♪
今日はいろいろ教えて下さいましてありがとうございました
m(。_。;))m ペコペコ…
クレー射撃用のターゲットとか・・・もありがとうございます♪
さっそく遊んでいます(〃'∇'〃)ゝ
