作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将行为放入 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/
我是一名优秀的程序员,十分优秀!