ポーズボール 作り方の考え方はわかりました。
でも LSLの特徴なのかもしれませんが、
アニメをさせる 命令系の呪文・・・ なんでしたっけ。。
llStopAnimation(string anim);
この呪文 誰を というのが抜けているらしく、 誰を という 呪文を書かないとだめなようです。。
タッチ呪文 → パーミッションを要求。
パーミッション呪文で → アニメ命令
パーミッション命令呪文 llRequestPermissions() まえに銭が2本あるから 命令系の呪文ですね。
llRequestPermissions(key agent, integer perm)
()のとこは 命令の詳細と考えればいいのかなぁ と思ってます。 間違ってたらごめんなさい。
■答え
touch_start(integer detected){
llRequestPermissions(llDetectedKey(0), PERMISSION_TRIGGER_ANIMATION);
}
だ そうです。
タッチのとこは わかりますね。 タッチというきっかけで パーミッションを取得すると
そのあとの( )がわからん。。。。
llDetectedKey(0), ??? 線が2本あるから 命令系かしら 0 って何が0やねん。。
PERMISSION_TRIGGER_ANIMATION まったくわからん。。
で 検索。。。。
http://mina.slmame.com/d2007-04-25.html みつけた!!
まず、ぱーみっしょん パーミッション = 許可 ですね 何を許可とるのでしょうか?
で これよんでたら わからなくなった・・・。
http://miz.slmame.com/e2514.html
こんどは こっちをみた。ふむふむなるほど、 また わからん。。
えーいさいごだ。
http://miz.slmame.com/e2381.html書いてた。
llRequestPermissions(key agent, integer perm) 呪文とその詳細。
key agent
誰に対して許可を取るかの指定です。
UUIDをセットします。
他のページにもでてたけど、UUID ってなんやろなぁ。
で早速。。
key UUID(UniversallyUniqueIndentifier)。オブジェクトを識別するキー
だそうです。
しかも 説明のところのタイトルが ”LSLで使用できる型”
型ってなんやねん。。。 はぁ。
id アバターのUUID と書いてました。。。 Key id は アバターのIDなのかしら?
なるほどね。 オブジェクトのキーね なるほどね。
学習できたのは、
お金を扱う関数を始めとして、
アバターのアニメーション、
オブジェクトのリンクの変更、
カメラ(視点)の制御、
キー入力の判定などの処理については
使う前にパーミッション(許可)をとるらしい。。。
まぁ そうしないと無法地帯になりますからね。。。
どうやら許可の呪文は 覚えておかないとゲームはつくれないようです。
あ そうそう オイラの目標は SL内にゲームをつくることです。構想3年ぐらい。。。
話をもどします。
llRequestPermissions(key agent, integer perm)
アバターのIDだな、 インターグラ パーム?? 何をさせるか?をいれるらしい。。。
本家のWIKIをみてみた あえて避けていたけど・・・。
PERMISSION_DEBIT マネーの許可
PERMISSION_TRIGGER_ANIMATION
なるほどね。呪文の() にいれるキーワードが書いてあるじゃないか。
しかも 下記が書いてある。
use of llStartAnimation and llStopAnimation
そんな面倒なつくりにしなくてもいいのにね。
なんとなく 仕組みがわかってきました。
引用
---------------------------------------------
string animation_name="boogie";
key agent = NULL_KEY;
default {
touch_start(integer detected){
if (agent == NULL_KEY) {
agent = llDetectedKey(0);
llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION);
}
}
run_time_permissions(integer perm) {
key perm_key = llGetPermissionsKey();
if (perm_key == agent) {
if (perm & PERMISSION_TRIGGER_ANIMATION){
key chk = llGetInventoryKey(animation_name);
list anms = llGetAnimationList(agent);
integer i;
for (i = 0; i < llGetListLength(anms); i++){
if (chk == llList2Key(anms, i)) {
llStopAnimation(animation_name);
agent = NULL_KEY;
return;
}
}
llStartAnimation(animation_name);
}
agent = NULL_KEY;
}
}
}
---------------------------------------------
一番 上にかいてあるこれ string animation_name="boogie";
なんだろうと思ってしらべたら 宣言しているんですね。
animation_name は boogie のファイルですよーって、、。
直すときに ここのファイル名だけ直せばOK ということみたいです。
string型 ってなんやろ。
なんでも これ使ったらつかえんのかしら・・・。
