ソラマメブログ
プロフィール
ぺんぎん
ぺんぎん
どもっす( ◎v◎ )
ぺんぎんっす。

「ぺんぎんさん」でいいっす。
「ぺんさん」でもOKっすよ。
何だって良いんっすけどね。
[個体名:Naoya Bellic]
(非商用)
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 1人

2010年10月23日

10/20(水)のオフィスアワーっす

10/16(土)のオフィスアワーはカフェの通常営業だったっす。
スクリプトの話はしてたっすけど、講座とは別の話っす。
なので16日のまとめは書かないっす。
どうもぺんぎんっす( ◎v◎ )


20日のオフィスアワーのまとめになるっす。

第4回お題の穴
 もう一度お題を書いておくっす。

//******************
// グローバル変数
//******************
string ANIM_NAME = "run";
key sitting_av = NULL_KEY;

//******************
// state default
//******************
default
{
  state_entry()
  {
    llSitTarget(<0.0, 0.0, 2.0>, ZERO_ROTATION);
  }
  changed(integer change)
  {
    if(change & CHANGED_LINK)
    {
      key av = llAvatarOnSitTarget();
      if(sitting_av)
      {
        if(av)
        {
          llUnSit(av);
        }
        else
        {
          llStopAnimation(ANIM_NAME);
          sitting_av = NULL_KEY;
        }
      }
      else
      {
        if(av)
        {
          sitting_av = av;
          llRequestPermissions(sitting_av, PERMISSION_TRIGGER_ANIMATION);
        }
      }
    }
  }
  run_time_permissions(integer perm)
  {
    if(perm & PERMISSION_TRIGGER_ANIMATION)
    {
      llStopAnimation("sit");
      llStartAnimation(ANIM_NAME);
    }
  }
}

 これには大きな穴があるっす。
 ポイントになるのはllAvatarOnSitTarget関数っす。
 座ったアバターのkeyを取得する関数っすね。
 この関数にはいくつか注意しないといけないことがあるっす。
 例えばっす。
 アバターAが座る→アバターBが座る
 となったとき、llAvatarOnSitTarget関数の戻り値は
 アバターBのkeyではなく、アバターAのkeyになるっす。
 まずこれが1つ目っす。
 アバターAが座る→アバターBが座る→アバターAが立つ
 となったときのllAvatarOnSitTarget関数の戻り値は
 NULL_KEYになるっす。
 これが2つ目っす。
 アバターAが座る→アバターBが座る→アバターAが立つ
 →アバターCが座る
 となったときはどうなるかと言うと、
 アバターCのkeyが返ってくるっす。
 これが3つ目っす。

 1つ目のケースを考えると、お題でllUnSit(av)となってるのは
 望ましい動作ではないっすね。
 後に座ったアバターBを立たせるのが自然な流れっす。
 
 ではどうやるかというと、llGetLinkKeyで比較するっす。
 リンク番号の後ろから順番に、最初に座ったアバター以外を
 全員立たせるということをするっす。
 このときに使うのがfor/while文なんっすけど、まだやってないっす。
 なので、登場するまでちょっと待ってくださいっす……

 と、今日の講座4回目でやる予定「だった」っす。
 お題を作ってるときには注意しないといけない点として
 覚えてたんっすけど、原稿を書くときにはすっかり忘れてたっす。
 つまりっす、原稿では説明してないわけっす。
 
 次回に持ち越すなどして、ここの部分の説明はやるっす。
講座のお題を作るのと、原稿を作るのは同時ではないっす。
そこが今回のミスの原因っす。

講座3回目の最後に4回目のお題を出したっすよね。
これより前に4回目のお題は完成してるわけっす。
一方、原稿が完成したのはその2週間後っす。
3回目と4回目の間隔がいつもより長かったのと、
原稿作成に苦戦したのがあって、間が開いたわけっす。
どこかにメモでもしておけば良かったんっすけどねぇ…


同じカテゴリー(デジアカ)の記事
 全6回のまとめっす (2011-02-07 19:50)
 締め切りについてっす (2011-01-12 00:35)
 講座5回目の宿題についてっす (2010-12-19 23:46)
 質問は12月いっぱいまでっすよ (2010-12-05 14:02)
 講座6回目っす (2010-11-21 01:09)
 講座4回目の宿題についてっす (2010-11-13 16:53)

Posted by ぺんぎん at 19:53│Comments(0)デジアカ
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。