Libgdx中的圆形带有线宽

5

我开始使用libgdx,试图简单地制作一个带有相当厚的描边圆形。到目前为止,我还没有找到任何方法来进行描边。

pixmap.setStrokeWidth()在API中甚至已经被移除了(?),Gdx.gl10.glLineWidth(width);没有任何效果。我该如何仅更改线条的描边呢?以下是我的当前代码片段:

@Override
public void create() {
    w = Gdx.graphics.getWidth();
    batch = new SpriteBatch();
    pixmap = new Pixmap(2 * w, 2 * w, Pixmap.Format.RGBA8888);
    pixmap.setColor(Color.BLACK);

    pixmap.drawCircle(w, w, w);
    texture = new Texture(pixmap);
    pixmap.dispose();

    sprite = new Sprite(texture);
}

@Override
public void render() {
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    batch.begin();
    sprite.setPosition(-w / 2, -w);
    sprite.draw(batch);
    batch.end();
}

随机猜测:Pixmap 的默认颜色是什么?它可能是代码在 Pixmap 上绘制黑色的结果吗? - Stefan Hanke
1个回答

6
OpenGL的“线宽”API很糟糕。标准只要求支持宽度1.0,因此许多实现(尤其是移动设备上)不支持更多。请参见Libgdx gl10.glLineWidth()
您可以尝试绘制两个填充圆,两个圆心相同。第二个圆应该半径较小,并且应以设置alpha为0的方式绘制到Pixmap中。这应该留下一个“粗”圆。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接