Libgdx - 如何缩放 rectangle/line (shaperenderer)

Libgdx - how to zoom a rectangle/line (shaperenderer)

假设我有一个 Actor,它有一个绘制方法:

@Override
public void draw(Batch batch, float parentAlpha) {
        super.draw(batch,parentAlpha);

        sr.begin(ShapeRenderer.ShapeType.Line);
        sr.setColor(Color.RED);
        sr.rectLine(getX(),getY(),getX() + getWidth(),getY(),3);
        sr.end();
}

如您所见,演员还在自己下方画了一条红线。 现在,当我在演员所在的舞台上缩放相机时,他会变大 - 它有效 但他的红色矩形不起作用。

当我在 Actor 上设置 debug() 时,它会显示调试行并且 也会缩放它们

我想达到什么目的?

我也需要沿着演员缩放线条。

如果有人知道如何实现这一点,我将不胜感激;)

Shaperenderer 类似于批处理。它有自己的坐标矩阵。 所以你也需要在shaperenderer上设置投影矩阵。

shaperenderer.setProjectionMatrix(camera.combined);

它可能对你有用。

但是当 shaperenderer 通过顶点绘制时,即使缩放,线条的宽度也可能不会改变 in/out。

您可以使用 openGL 函数更改线宽。

Gdx.gl.glLineWidth(width);

另外我建议不要使用 Shaperenderer,因为它非常昂贵 class 并且只推荐用于调试绘图。