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

[Java3Djp:00276] RE: [Java3Djp:00273] 左右の壁への衝突 (Re: 初歩的な質問だとは思い)



こんにちは。お返事有難うございます。

> すぐに追試できないので一般的なことしか書けませんが、
> 左右にも衝突と反発を行うとなると、
> 今までの姑息な手段ではダメだと思います。
> 
> 動かす物体の側に進行方向のベクトルを持たせ、
> 進行方向のベクトルに応じた反発ベクトルを計算させる必要がありそうです。
> 
> 物体を動かすのはキー操作で行っているようですので、
> どの方向キーが押されたかで進行方向ベクトルを判定して、
> その進行方向ベクトルと壁の面法線ベクトルとで
> 反発ベクトルを計算する方法でしょうか。

左右の壁は別処理が必要なのですね?
私が参考にさせていただいている、衝突検知のサンプルではFront,Back,Left,Rightの壁があり、それぞれ衝突検知・反発が行われていますよね?これと同じ考えでは駄目なのでしょうか。


> > setUserDataは、一つの値しかセットできないのでしょうか?
> 
> はい。そうです。
> 
> 複雑な情報をセットしたいなら、
> 複雑な情報を保持できる新たなクラスを書いて
> その型のオブジェクトをセットしてください。 

なるほど、わかりました。ありがとうございます。

> 実際に表示された例外を見せてください。例外の型名で推測がつくと思います。
 
Exception occurred during Behavior execution:
javax.media.j3d.CapabilityNotSetException: Node: no
capability to read user boun
ds
        at
javax.media.j3d.Shape3D.getBounds(Shape3D.java:747)
        at
WallCollisionBehavior.processStimulus(WallCollisionBehavior.java:45)
        at
javax.media.j3d.BehaviorScheduler.doWork(BehaviorScheduler.java:172)
        at
javax.media.j3d.J3dThread.run(J3dThread.java:250)

このようなエラーです。CapabilityBitの設定だと思ったのですが…。
先のメールで述べましたが、castlebaseのみこのエラーが出ます。他の陸地はShape3Dで記述しているのに対し、castlebaseはShape3Dを使っていない(?)のでこうなるのでしょうか。

超・初心者から脱せないまま、卒業研究の締め切りが間近に迫っております^^;
引き続き、ご指導いただければ幸いです。よろしくお願いします。

**********************************************************
★CD、DVD買うなら安心・お得な【J-WAVE CD ONLINE】で!
全品8%~15%ポイント還元! http://www.j-wave.co.jp/cd/
★特典満載【J-WAVE PASS】申込みはhttp://www.j-wave.co.jp/pass/
**********************************************************