簡體   English   中英

用Java3d編寫游戲

[英]write game with java3d

我寫了這個程序,但是它有例外

group.addChild(tg);

但是當我添加

TransformGroup tg = new TransformGroup();

進入for循環塊,它會出現任何問題,請告訴我原因。

謝謝。

這是我的代碼

public BranchGroup Creat()
{
    BranchGroup group = new BranchGroup();
    TransformGroup tg = new TransformGroup();
    for(float x = 0.0f; x < 1.0f; x += 0.1f)
    {
         Transform3D td = new Transform3D();
         Vector3f vector3f = new Vector3f(x, x, x);             
         td.setTranslation(vector3f);
         tg.setTransform(td);
         tg.addChild(new Cone(0.05f, 0.1f));
         group.addChild(tg);             
   }



    return group;
}

這是例外

Exception in thread "main" javax.media.j3d.MultipleParentException: Group.addChild: child already has a parent
    at javax.media.j3d.GroupRetained.checkValidChild(GroupRetained.java:478)
    at javax.media.j3d.GroupRetained.addChild(GroupRetained.java:487)
    at javax.media.j3d.Group.addChild(Group.java:290)
    at t39.Draw.Creat(Draw.java:68)
    at t39.Draw.<init>(Draw.java:50)
    at t39.Main.main(Main.java:22)

同一元素在場景圖中不能重復存在。 當您在循環中創建一個新的TransformGroup ,它不會違反規則,但是,如果您沒有為每個addChild()創建一個新的TransformGroup ,則會違反此規則。

(“圖中僅一次”是例外,通過較弱的引用而不是父/子引用,例如屬性)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM