我使用ShapeRenderer绘制了一个填充圆圈,现在我想将此圆绘制为透明圆 . 我使用以下代码来做到这一点:但是圆圈不是透明的 . 此外,我检查了libgdx API,并从维基,它说,需要创建CameraStrategy . 有人曾经遇到过类似的问题吗?如果是这样,请给我一些线索 . 提前致谢 .
Gdx.gl.glEnable(GL10.GL_BLEND);
Gdx.gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
drawFilledCircle();
Gdx.gl.glDisable(GL10.GL_BLEND);
private void drawFilledCircle(){
shapeRenderer.setProjectionMatrix(camera.combined);
shapeRenderer.begin(ShapeType.FilledCircle);
shapeRenderer.setColor(new Color(0, 1, 0, 1));
shapeRenderer.filledCircle(470, 45, 10);
shapeRenderer.end();
}
4 回答
在这种情况下,以下代码对我有用,也许它会帮助其他人:
首先我们需要启用混合:
并确保不要在该行代码和
Shaperender.drawSomething()
代码行之间调用SpriteBatch.begin()
和SpriteBatch.end()
. 我不知道我的情况有什么用嗯,绘制完全透明的东西并不是真的有意义 . 如果您确实要制作半透明圆,则必须在每帧之前按
glClearColor
清除颜色缓冲区,并将Color
alpha分量设置为0.5f
.如果你不清除缓冲区,在几次渲染绘制后,圆圈会混合成一个几乎是纯色的圆圈 .
Only 这对我有用: