具有线宽的Libgdx圆

时间:2014-08-28 02:44:02

标签: java opengl libgdx

我已经开始使用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();
}

1 个答案:

答案 0 :(得分:6)

OpenGL"线宽" API很蹩脚。该标准仅要求支持宽度1.0,因此许多实现(特别是在移动设备中)不支持更多。请参阅Libgdx gl10.glLineWidth()

您可以尝试绘制两个填充的光盘,两个光盘都具有相同的中心。第二个应该具有较小的半径,并且应该以这样的方式绘制到Pixmap,以将alpha设置为绘制的0。这应该留下一个"脂肪"圈。