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 并且只推荐用于调试绘图。
假设我有一个 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 并且只推荐用于调试绘图。