android actor,android – 在libGDX中作为Actor绘制透明形状?

这篇博客讨论了在LibGDX游戏中如何处理ShapeRenderer绘制的矩形使其变得透明。问题在于ShapeRenderer默认不启用混合,导致透明度设置无效。解决方案是启用GL_BLEND混合,并注意绘制顺序对透明效果的影响。此外,设置不透明度为0会使对象完全不可见。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我试图在一个类中在屏幕上绘制一个简单的rect并将其用作actor.

但无论我做什么,似乎没有选择让它透明.有谁知道如何做到这一点?

提前致谢!

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);

}

}

解决方法:

您还需要启用混合.您可以在全局范围内执行此操作,也可以根据需要启用它(并禁用它).它应该由SpriteBatch上下文启用,但我不认为它是为ShapeRenderer启用的.

Gdx.graphics.getGL10().glEnable(GL10.GL_BLEND); // Or GL20

渲染背景和Actors的顺序也会对透明度产生影响.

最后,您将不透明度设置为0,因此对象将完全不可见.这通常根本不起作用. (我假设你只是试图从当前的100%可见变化?)

标签:android,libgdx

来源: https://codeday.me/bug/20190725/1534560.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值