Java 如何在Libgdx Box2d中保持实体未渲染?
我在任何地方都找不到答案,我开始怀疑这是否可能。如何在LIbgdx中保持身体“不可见”?因此,它将保持与所有对象的交互,并像一个常规实体一样工作,但不会被渲染您可以创建自己的并覆盖Java 如何在Libgdx Box2d中保持实体未渲染?,java,libgdx,box2d,Java,Libgdx,Box2d,我在任何地方都找不到答案,我开始怀疑这是否可能。如何在LIbgdx中保持身体“不可见”?因此,它将保持与所有对象的交互,并像一个常规实体一样工作,但不会被渲染您可以创建自己的并覆盖renderBody方法 class MyBox2dRenderer extends Box2DDebugRenderer { private ArrayList<Body> notRenderingBodies; // array of vodies that you dont want to
renderBody
方法
class MyBox2dRenderer extends Box2DDebugRenderer {
private ArrayList<Body> notRenderingBodies; // array of vodies that you dont want to render
public MyBox2dRenderer(ArrayList<Body> notRenderingBodies) {
super();
this.notRenderingBodies = notRenderingBodies;
}
@Override
protected void renderBody(Body body) {
for (Body b : notRenderingBodies) { // loop through all bodies in array
if (b == body){ // if given body equals by reference to one from list than return
return;
}
}
super.renderBody(body);
}
public ArrayList<Body> getNotDenderingBodies() {
return notRenderingBodies;
}
public void setNotDenderingBodies(ArrayList<Body> notDenderingBodies) {
this.notRenderingBodies = notDenderingBodies;
}
}
类MyBox2DebugRenderer扩展了Box2DebugRenderer{
private ArrayList NotRenderingBody;//不希望渲染的伏特加数组
公共Mybox2Renderer(ArrayList NotRenderingBody){
超级();
this.notrenderingbody=notrenderingbody;
}
@凌驾
受保护的空心渲染器体(主体){
对于(主体b:NotRenderingBodys){//循环遍历数组中的所有主体
if(b==body){//如果给定的body通过引用从列表中的一个等于,则返回
返回;
}
}
super.renderBody(body);
}
公共阵列列表GetNotDenderingBodys(){
返回非渲染体;
}
public void setNotDenderingBodys(数组列表NotDenderingBodys){
this.notrenderingbody=notdenderingbody;
}
}