Android 更改以前由AlphaModifier更改的精灵alpha
我在一个精灵上运行AlphaModifierAndroid 更改以前由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?首先,如果您想在修改
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
它还提供了一点动画效果,所以我更喜欢这种方式。这对我来说很有效。我知道有更好的解决办法,我更喜欢另一种方法。您的解决方案也有效,因此我接受它。:)