4

我正在尝试使用 libgdx 形状渲染器绘制一条特定宽度的线。我跟着这个链接

问题是如果我指定更多的线宽,即超过 9,它不会显示增加的宽度。超过 9 或者我指定 20 或 100 像素,它将具有与 9 相同的结果

shapeRenderer.begin(ShapeType.Line);
    shapeRenderer.line(50, 70, 0, 50, 200, 0, Color.BLUE, Color.RED);
    int lineWidth = 20; // pixels
    Gdx.gl10.glLineWidth(lineWidth / camera.zoom);
     shapeRenderer.end();

谢谢沙克尔

4

4 回答 4

4

要查询支持的宽度范围以及该范围内支持的宽度之间的大小差异,请使用参数 GL_ALIASED_LINE_WIDTH_RANGE、GL_SMOOTH_LINE_WIDTH_RANGE 和 GL_SMOOTH_LINE_WIDTH_GRANULARITY 调用 glGet。

参考

为了避免设备特定的行为,我改用四边形。从一个小纹理绘制一个 1x1 的正方形,然后定位、缩放(取决于您要绘制的线条的宽度和高度)、颜色和旋转它。

于 2013-09-26T11:13:11.233 回答
0

用这个

shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
instead of shapeRenderer.begin(ShapeType.Line);
于 2018-02-27T15:33:52.747 回答
0

用你想要的线宽替换 10

Gdx.gl.glLineWidth(10 / camera.zoom);

于 2021-04-09T11:27:09.703 回答
0

您应该使用 ShapaRenderer.rectLine。你可以在这里看到更详细的答案

于 2015-09-23T17:50:07.123 回答