我有典型的带有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);
当投影特性改变时,线点正确平移但线宽仍然相同!
是否有任何方法可以根据投影宽度和高度改变线宽?
问候
答案 0 :(得分:6)
线宽以像素为单位,不受任何投影变换的影响。因此,没有简单的方法可以使线宽取决于当前的投影变换,并且您无法通过真实的二维几何(即旋转的矩形或类似的东西)替换线条。
答案 1 :(得分:0)
您没有指定使用的相机类型,但如果是OrthographicCamera
,您可以使用zoom
根据相机的缩放系数修改线宽:
例如,当您没有放大/缩小时有1像素宽度线时,可以使用:
OrthographicCamera camera = ...
int lineWidth = 1; // pixels
Gdx.gl10.glLineWidth(lineWidth / camera.zoom);