ソラマメブログ

2008年06月30日

AV レーダーできた

作るかな~ と言っていたものを作ってみました
-----

-----

-----

-----
リストもあげておきます
-----
まず本体の側
//
// File: AVRadar.lsl
// Date Author number of nodes
// 2008/6/29 walkinglint 21
//
integer i;
float range = 2.5;
float scale;
vector radar_pos;
vector av_image_pos;
integer av_image_channel = 851;
default {
state_entry() {
llSensorRepeat("", NULL_KEY, AGENT, 96.0, PI, 60);
scale = 2.5 / (2.0 * 96.0);
}
on_rez(integer param) {
llResetScript();
}
sensor(integer num_detected) {
radar_pos = llGetPos();
for (i = 0; i < num_detected; i++) {
av_image_pos = radar_pos + (llDetectedPos(i) - radar_pos) * scale;
llRezObject("av_image", av_image_pos, ZERO_VECTOR, ZERO_ROTATION, 0);
llSleep(0.1);
llSay(av_image_channel, llDetectedName(i) + "," + (string)llDetectedKey(i));
}
}
}
次に AV 毎に生成するボールの側
//
// File: av_image.lsl
// Date Author number of nodes
// 2008/6/29 walkinglint 39
//
integer listener;
integer av_image_channel = 851;
list av_data;
string av_name;
key av_key;
integer av_dist;
integer av_info;
default {
state_entry() {
listener = llListen(av_image_channel, "", "", "");
}
on_rez(integer param) {
llResetScript();
}
listen(integer channel, string name, key id, string message) {
av_data = llParseString2List(message, [","], []);
av_name = llList2String(av_data, 0);
av_key = llList2Key(av_data, 1);
av_dist = llList2Integer(av_data, 2);
llSetText(av_name, <1.0, 1.0, 1.0>, 1.0);
if (av_dist >= 20) {
llSetAlpha(0.5, ALL_SIDES);
} else {
llSetAlpha(1.0, ALL_SIDES);
}
av_info = llGetAgentInfo(av_key);
if (av_info & AGENT_TYPING) {
llSetPrimitiveParams([25, ALL_SIDES, 0.1]);
} else {
llSetPrimitiveParams([25, ALL_SIDES, 0.0]);
}
if ((av_info & AGENT_FLYING) || (av_info & AGENT_IN_AIR)) {
llSetColor(<1.0, 0.0, 0.0>, ALL_SIDES);
} else if (av_info & AGENT_WALKING) {
llSetColor(<1.0, 1.0, 0.0>, ALL_SIDES);
} else if ((av_info & AGENT_ON_OBJECT) || (av_info & AGENT_SITTING)) {
llSetColor(<0.0, 0.0, 1.0>, ALL_SIDES);
} else {
llSetColor(<0.0, 1.0, 0.0>, ALL_SIDES);
}
llListenRemove(listener);
}
}

同じカテゴリー(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)
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。