我想在一个类的屏幕上绘制一个简单的矩形并将其用作演员。作为Actor在libGDX中绘制透明形状?
但无论我做什么,似乎没有选项可以使其透明。有谁知道如何做到这一点? 在此先感谢!
public class AreaColorRect extends Actor {
public float opacity = 0.0f;
private Color shapeFillColor = new Color();
public Rectangle area;
public ShapeRenderer shapeRen;
public AreaColorRect(float x, float y, float w, float h) {
shapeRen = new ShapeRenderer();
this.area = new Rectangle(x, y, w, h);
}
@Override
public void draw(SpriteBatch batch, float parentAlpha) {
shapeRen.begin(ShapeType.Filled);
shapeRen.setColor(new Color(shapeFillColor.r, shapeFillColor.g, shapeFillColor.b,
0.0f));
shapeRen.rect(area.x, area.y, area.width, area.height);
shapeRen.end();
}
public void setShapeFillColor(float r, float g, float b) {
this.shapeFillColor = new Color(r, g, b, 1);
}
}
那么,它不错,opacity- /α-值仍然是错误的。但这只是因为我正在测试不同的值。 问题依然存在。我做了一些改变(比如最初结束spritebatch),但仍然出现rect。即使alpha仍然在0.0f – 2013-05-07 19:38:06
As P.T.上面提到的,它看起来像执行代码时混合禁用。注意:默认情况下,当您在SpriteBatch上调用end()时,它将确保混合被禁用。 – Jyro117 2013-05-08 19:33:33
'Gdx.graphics.getGL20()。glEnable(GL20.GL_BLEND);'必须在render()中调用,或者只在Screen的构造函数中调用一次? – 2014-09-08 04:45:39