ソラマメブログ

2008年07月01日

cannon and bullet(その3)

SIM plotter と書いていたけれど 要は 弾からの位置情報を そのまま SIM 内の座標でプロットする
-----
アキバだと 砂場の範囲を超えるとエラーになったので ナユタの艀の上から発射してみた
-----

-----

-----

-----
まあ こんな感じか
-----
リストもあげておきます
-----
SIM plotter の方から...
//
// File: sim_plotter.lsl
// Date Author number of nodes
// 2008/7/1 walkinglint 38
// 2008/7/1 walkinglint 86 (plotter2->sim_plotter)
// 2008/6/30 walkinglint 86
// 2008/6/30 walkinglint 61 (plotter->plotter2)
// 2008/6/30 walkinglint 61
//
integer num_of_dots = 20;
integer min_link_num = 2;
integer max_link_num = 21;
float size = 0.5;
integer i;
integer bullet_channel = 2610;
integer listener;
integer cur_link_num;
set_init_pos() {
cur_link_num = min_link_num;
for (i = 0; i < num_of_dots; i++) {
draw_dot(<256.0 / 2, 256.0 / 2, 10.0>);
}
}
draw_dot(vector data) {
float range = size;
vector pos_org = <-(size / 2.0), -(size / 2.0), -(size / 2.0)>;
float scale = size / 256.0;
vector pos = pos_org + data * scale;
llMessageLinked(cur_link_num, 0, (string)pos, NULL_KEY);
cur_link_num++;
if (cur_link_num > max_link_num) {
cur_link_num = min_link_num;
}
}
default {
state_entry() {
set_init_pos();
listener = llListen(bullet_channel, "", "", "");
}
on_rez(integer param) {
llResetScript();
}
touch_start(integer total_number) {
set_init_pos();
}
listen(integer channel, string name, key id, string message) {
draw_dot((vector)message);
}
}
大砲の方も不要なコードを削除し速度を調節
//
// File: cannon2.lsl
// Date Author number of nodes
// 2008/7/1 walkinglint 22
// 2008/7/1 walkinglint 22 (cannon->cannon2)
// 2008/7/1 walkinglint 18
//
float vel = 50.0;
default {
on_rez(integer param) {
llResetScript();
}
touch_start(integer total_number) {
llRezObject("bullet", llGetPos(), -llRot2Fwd(llGetRot()) * vel, ZERO_ROTATION, 1);
}
}

同じカテゴリー(walking のスクリプティング講座)の記事
 プロフィール写真の表示に問題 (2009-11-30 20:55)
 ミニ太陽系 (2009-03-21 06:03)
 関数から文字列を返したら何か問題になる? (2009-03-18 18:02)
 llListFindList って型って関係ないんだったっけ (2009-03-18 14:02)
 夏時間(PDT)の実験 (2009-03-08 22:04)
 15パズルの作り方(その3) (2009-03-08 06:03)
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。