2

我有带有 render() 函数的典型 Libgdx 类。

在 render() 函数中,我有 ShapeRenderer 批处理:

Gdx.gl10.glLineWidth(width);
renderer.begin(ShapeType.Line);
renderer.setColor(25,0, 0, alpha);
renderer.line(point_x1, point_y1, point_x2, point_y2);
renderer.end(); 

在这个函数中,我还有:

        camera.update();
        renderer.setProjectionMatrix(camera.combined);

并且当投影属性改变时,线点被正确翻译但线宽仍然相同

由于投影宽度和高度,有什么方法可以改变线宽?

问候

4

2 回答 2

6

线宽以像素为单位,不受任何投影变换的影响。因此,没有简单的方法可以使线宽取决于当前的投影变换,并且您不会用真正的二维几何(即旋转的矩形或类似的东西)替换您的线。

于 2012-09-10T10:54:58.790 回答
0

您没有指定使用的相机类型,但如果是,OrthographicCamera您可以zoom根据相机的缩放系数来修改线宽:

例如,当您在未放大/缩小时有一条 1 像素宽度的线时,您可以使用以下命令:

OrthographicCamera camera = ...
int lineWidth = 1; // pixels

Gdx.gl10.glLineWidth(lineWidth / camera.zoom);
于 2013-03-19T12:50:15.317 回答