gpt4 book ai didi

java - 组 : only a BranchGroup node may be added

转载 作者:行者123 更新时间:2023-11-29 08:47:52 26 4
gpt4 key购买 nike

我正在尝试将行为放入 BranchGroup,但是当我运行该程序时,它会返回此错误:

“线程“Thread-1”javax.media.j3d.RestrictedAccessException 中的异常:组:只能添加 BranchGroup 节点”

我不得不说我把那些 setCapabilities:

    ramaVisible = new BranchGroup();
ramaVisible.setCapability(BranchGroup.ALLOW_DETACH);
ramaVisible.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
ramaVisible.setCapability(BranchGroup.ALLOW_CHILDREN_READ);
ramaVisible.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND);
ramaVisible.setCapability(BranchGroup.ALLOW_BOUNDS_READ);
ramaVisible.setCapability(BranchGroup.ALLOW_BOUNDS_WRITE);

这就是我将行为放入 BranchGroup 的方法

    Colisiones behaviourColision = new Colisiones(this.ramaVisible,this,this.juego);
behaviourColision.setSchedulingBounds(new BoundingSphere());
this.ramaVisible.addChild(behaviourColision);

我正在用 Java3D 开发这个程序

最佳答案

您可能会找到一些其他信息 in this SO post .

不幸的是,我认为这不足以解决问题,但它让我走上了正确的轨道。

这是我自己解决这个问题的例子。

BranchGroup scene = new BranchGroup();
BranchGroup content = new BranchGroup();
content.setCapability(BranchGroup.ALLOW_DETACH);
content.setCapability(Group.ALLOW_CHILDREN_EXTEND);
scene.setCapability(BranchGroup.ALLOW_DETACH);
scene.setCapability(Group.ALLOW_CHILDREN_EXTEND);
scene.setCapability(Group.ALLOW_CHILDREN_WRITE);
scene.compile();

//add the initial set of children to "content"...
content.addChild(directionalLight);

scene.addChild(content);

//initialize a SimpleUniverse object...

universe.addBranchGraph(scene);

稍后在运行时:

content.detach();
content.addChild(newChild);
scene.addChild(content);

我不确定是否有更简单的方法来做到这一点,但不幸的是,仅在创建时设置功能是不够的。尽管您必须分离并重新设置一个组的父级,但这可能比添加一个新的 BranchGroup 更好,后者是另一种可以达到目的的 hack。

关于java - 组 : only a BranchGroup node may be added,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24233013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com