增加LibGDX中使用Shape Renderer绘制的线条的宽度

时间:2013-09-06 05:35:51

标签: libgdx

我在LibGDX中使用Shape Renderer绘制一条线,我在我的代码中使用正交相机,所以增加我使用的宽度

camera = new OrthographicCamera();
int lineWidth = 8; // pixels
Gdx.gl10.glLineWidth(lineWidth / camera.zoom);

现在,我得到更广泛的界限。但是当屏幕电源关闭然后再打开时,问题就出现了,线路再次成为正常线路。如何保持宽度不变?

2 个答案:

答案 0 :(得分:14)

ShapeRenderer 具有 rectLine 方法,用于绘制粗线。它绘制一个旋转的填充矩形,其中较小的相对边以传递给它的点为中心(作为坐标或 Vector2 对象)。该方法使用参数 width 来设置线宽。

您可以查看文档here

示例:

shapeRenderer.rectLine(new Vector2(x1,y1),new Vector2(x2,y2),lineWidth);

答案 1 :(得分:1)

正如你在这里看到的:
libgdx Shaperenderer line .. How to draw line with a specific width
在这里:
Libgdx gl10.glLineWidth()
在这里:
Why Libgdx Gdx.gl10.glLineWidth(width); does not react to change projection properities

在shaperenderer中使用线宽并不是你想要达到目标的最好方法。

尝试使用1x1白色TextureRegion(您可以更改Batch稍后绘制的颜色),并使用您想要的宽度和高度绘制它:

batch.draw(region, x, y, width, height);