-3

Java-3D で作成した 2 つのボール間の衝突をプログラムに検出させることができました。プレイヤーボールとエネミーボール。問題は、敵のボールと衝突したときにプレイヤーのボールを取り除く方法がわからないことです。objTrans.removeChild(sphere);objRoot.removeChild(objTrans);(objTrans は私の TransformGroup で、objRoot は私の BranchGroup) のような単純なものをいくつか試しましたが、どちらの場合もこのエラー メッセージが表示されます。

Exception in thread "AWT-EventQueue-0" javax.media.j3d.RestrictedAccessException: Group: only a BranchGroup node may be removed

私も試しobjRoot.detach();ましたが、エラーメッセージが表示されます:

Exception in thread "AWT-EventQueue-0" javax.media.j3d.CapabilityNotSetException: BranchGroup: no capability to detach

ボールを削除する他の方法はわかりません。助けてください。

4

2 に答える 2

0

自分でゲームをデザインするときに同じ問題に遭遇しました。私が見つけた最善の解決策は、破壊される可能性のあるオブジェクトをリストに格納し、必要に応じて反復して要素を削除することでした。

于 2013-04-10T16:00:34.877 に答える