Libgdx嵌套ShapeRenderer不画线(Libgdx NESTED ShapeRender

2019-11-03 15:29发布

在下面我取回顶点的ArrayList代码(我已经调试和他们实际上有),然后尝试使他们这是在渲染方法托管于该窝循环排列。 出于某种原因,如果这是嵌套在ShapeRenderer不能连接所有的线? 谁能告诉我,我做错了什么? 没有什么是被绘制到屏幕上; 我没有得到任何错误。

    shapeRenderer.setProjectionMatrix(camera.combined);
    shapeRenderer.begin(ShapeType.Line);
    for(int i = 0;i<tmpBodies.size;i++)
    {   
        if(tmpBodies.get(i).getType().equals(BodyType.DynamicBody) && 
           !tmpBodies.get(i).equals(car.getChassis()) &&
           !tmpBodies.get(i).equals(car.rightWheel)&& 
           !tmpBodies.get(i).equals(car.leftWheel)&& 
           !tmpBodies.get(i).equals(terrain))  // tmpBodies.get(i).getFixtureList().get(0).getShape().equals(Type.Chain)
        {
            ChainShape tempShape = new ChainShape();
            ArrayList<Vector2> bodyPoints = new ArrayList<Vector2>();

            tempShape = (ChainShape)tmpBodies.get(i).getFixtureList()
                                    .get(0).getShape();

            for(int q=0; q<tempShape.getVertexCount(); q++)
            {
                Vector2 linePoints = new Vector2();

                tempShape.getVertex(q, linePoints);

                Vector2 newLinePoints = tmpBodies.get(i).getWorldPoint(linePoints);
                bodyPoints.add(newLinePoints);
            }

            for(int z=0; z<tempShape.getVertexCount()-1; z++)
            {
                shapeRenderer.setColor(1, 1, 0, 1);
                shapeRenderer.line(bodyPoints.get(z).x,
                                   bodyPoints.get(z).y,
                                   bodyPoints.get(z+1).x,
                                   bodyPoints.get(z+1).y);
            }
        }
    }

Answer 1:

要是我很好地解释,那就是,可能吗? 你需要使用另一个matrix4,如果使用的Box2D如单位为PPM。

shapeRenderer.setProjectionMatrix(camera.combined);

改变,例如:

testMatrix4 Matrix4; //<-- Variable Class. 

//在你的代码

//Other Code

//batch or Camera Matrix

testMatrix4 = batch.getProyectionMatrix().cpy()
                .scale(YOUR_PPM_X, YOUR_PPM_Y, 0);

shapeRenderer.setProjectionMatrix(testMatrix4);

//Other Code

我从来没有这样的事情,但如果它不能正常工作,请通知我,我抹去。



文章来源: Libgdx NESTED ShapeRenderer not drawing lines