Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Libgdx Box2d中保持实体未渲染?_Java_Libgdx_Box2d - Fatal编程技术网

Java 如何在Libgdx Box2d中保持实体未渲染?

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

我在任何地方都找不到答案,我开始怀疑这是否可能。如何在LIbgdx中保持身体“不可见”?因此,它将保持与所有对象的交互,并像一个常规实体一样工作,但不会被渲染

您可以创建自己的并覆盖
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; } }