更改雪碧阿尔法以前AlphaModifiers
问题描述:
我跑AlphaModifier在雪碧更改雪碧阿尔法以前AlphaModifiers
mSprite.setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
mSprite.registerEntityModifier(new AlphaModifier(.5f,1,0.4f));
之后,我想再次cahnge mSprite的阿尔法变更为1。
我想:
mSprite.setAlpha(1f);
它不会工作
我怎么能是阿尔法再次被设置为1?
答
首先,如果你想要把行为从您修改它之前回来,你应该,否则每个渲染调用它会使用你的参数之前调用
setBlendFunction(IShape.BLENDFUNCTION_SOURCE_DEFAULT, IShape.BLENDFUNCTION_DESTINATION_DEFAULT)
。 此外,由于AlphaModifier将在每个onUpdate()(每个框架至少有一个)被调用,它将覆盖您的新值。您应该删除修改器(或确保在完成修改后删除),然后您可以设置您喜欢的透明度。
答
抱歉,延迟。
这就是我所做的。
mSprite.setAlpha(0);
mSprite.setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
mSprite.registerEntityModifier(new AlphaModifier(.5f,0,1));
阿尔法修饰符Finish后i中的APLHA设置为0。
然后再次注册混合函数。
然后再次注册alpha修正器,使alpha回到1.
它也给出了一点动画效果,所以我更喜欢这种方式。
+0
这是为我工作。我知道可以有更好的解决方案。 – 2013-05-07 06:34:17
我来试试 – 2013-04-24 07:30:14
给我们更新@ ChaitanyaChandurkar – 2013-04-24 11:27:36
我更喜欢另一种方式。你的解决方案也起作用,所以我接受它。 :) – 2013-05-07 06:35:18