【问题标题】:How do I keep a body unrendered in Libgdx Box2d?如何在 Libgdx Box2d 中保持未渲染的身体?
【发布时间】:2017-11-11 20:06:56
【问题描述】:

我在任何地方都找不到答案,我开始怀疑这是否可能。如何在 LIbgdx“Invisble”中保留一个身体?这样它就会继续与一切交互并像一个普通的身体一样行动,但不会被渲染

【问题讨论】:

    标签: java libgdx box2d


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多