Android 更改以前由AlphaModifier更改的精灵alpha

Android 更改以前由AlphaModifier更改的精灵alpha,android,andengine,alphablending,alpha-transparency,Android,Andengine,Alphablending,Alpha Transparency,我在一个精灵上运行AlphaModifier mSprite.setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA); mSprite.registerEntityModifier(new AlphaModifier(.5f,1,0.4f)); 在那之后,我想把mSprite的alpha值再次压缩到1 我试过: mSprite.setAlpha(1f); 这行不通 如何将alpha值再次设置为1?首先,如果您想在修改

我在一个精灵上运行AlphaModifier

mSprite.setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
mSprite.registerEntityModifier(new AlphaModifier(.5f,1,0.4f));
在那之后,我想把mSprite的alpha值再次压缩到1
我试过:

mSprite.setAlpha(1f); 
这行不通


如何将alpha值再次设置为1?

首先,如果您想在修改之前恢复该行为,您可能应该调用

setBlendFunction(IShape.BLENDFUNCTION\u源\u默认,IShape.BLENDFUNCTION\u目标\u默认)

否则,在每次渲染调用之前,它将使用您的参数。 此外,由于AlphaModifier将在每个onUpdate()调用(这意味着每帧至少调用一个),因此它将覆盖新值。您应该删除修改器(或确保完成后将其删除),然后您可以设置您喜欢的透明度。

抱歉延迟

这就是我所做的

mSprite.setAlpha(0);
mSprite.setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
mSprite.registerEntityModifier(new AlphaModifier(.5f,0,1));
Alpha修饰符完成后,我将aplha设置为0。
然后再次注册混合函数。
然后再次注册alphaModifier,将alpha恢复为1


它还提供了一点动画效果,所以我更喜欢这种方式。

这对我来说很有效。我知道有更好的解决办法,我更喜欢另一种方法。您的解决方案也有效,因此我接受它。:)