2013-04-10 102 views
-3

我有finnaly設法讓我的程序檢測到我在Java-3D中創建的兩個球之間的碰撞;球員球和敵人球。現在的問題是,我不知道如何讓球員在與敵方球碰撞時被移除。我曾嘗試一些簡單的東西像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 

我不知道任何其他方法可以將球取出。請幫忙。

回答

0

我自己設計遊戲時遇到同樣的問題。我發現最有效的解決方案是將可能被銷燬的對象存儲在可以迭代的列表中,並在必要時刪除元素。

+0

我該怎麼做java-3d中的球體? – user2247859 2013-04-10 16:07:26

+0

在開始製作List之前,請確保您使用的是BranchGroup對象。因爲只有這些可以通過使用branch.detach() – phcoding 2013-04-10 16:17:32

+0

從實際場景中刪除當我這樣做時,我收到一條錯誤消息說線程「AWT-EventQueue-0」中的異常javax.media.j3d.CapabilityNotSetException:BranchGroup:沒有能力分離 – user2247859 2013-04-10 16:27:01