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

線幅はピクセル単位で指定され、投影変換の影響を受けません。そのため、線幅を現在の射影変換に依存させる簡単な方法はなく、線を実際の 2 次元ジオメトリ (つまり、回転した長方形など) に置き換えることはできません。

于 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 に答える