[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:01274] Re: Billboard2



◆◇ ◆◇ ◆◇   MagicalCastβ(ベータ版)  ◆◇ ◆◇ ◆◇
    ┌──┐                                 ┌──┐
    │\/│ DNSの新MLシステム誕生です!│\/│
    └──┘                                 └──┘
        これまでの簡単・快適そのままで高機能に
      いえいえもっと高速に。βテストにご協力下さい
            ※ fmlでもmajordomoでもありません
◆◇ ◆◇ ◆◇   http://mx7.dns-ml.co.jp/  ◆◇ ◆◇ ◆◇

内野です。

> 具体的には p.12 に書いてあるように、
> initialize(), processStimulus() の最後で
> wakeupOn() メソッドを実行します。
> 引数は WakeupOnBehaviorPost になるはずです。

以下のようなソース(メインの実行部分はまだ適当です)
を書いたのですが、うまくいきません。
wakeupOnメソッドが上手く働いていないようですが、
WakeupOnBehaviorPostの引数のBehaviorである
Billboardをどのように扱えばいいのでしょうか?


import java.awt.event.*;
import java.util.Enumeration;
import javax.media.j3d.*;
import javax.vecmath.*;

public class ChangeTexBehavior extends Behavior{
  
  private Billboard bill;
  private TransformGroup rotate;

  private Transform3D t3d = new Transform3D();
  private Matrix3f rot = new Matrix3f();

  private int angle;

  ChangeTexBehavior(Billboard bill,TransformGroup rotate){
    this.bill = bill;
    this.rotate= rotate;
    System.out.println("called const");

  }

  public void initialize(){

    wakeupOn(new WakeupOnBehaviorPost(bill,0));
    System.out.println("called ini");
    

 }

  public void processStimulus(Enumeration criteria){

    System.out.println("called process");

    rotate.setTransform(t3d);
    t3d.getRotationScale(rot);

    angle = (int)Math.acos(rot.m00);

    System.out.println(angle);

    wakeupOn(new WakeupOnBehaviorPost(bill,0));

  }
}