我有一个带有fadeOut / fadeIn动作的图像。像这样:
public void fadeInAndOut() {
AlphaAction actionFadeOut = new AlphaAction();
actionFadeOut.setAlpha(0f);
actionFadeOut.setDuration(2f);
AlphaAction actionFadeIn = new AlphaAction();
actionFadeIn.setAlpha(1f);
actionFadeIn.setDuration(2f);
this.addAction(Actions.sequence(actionFadeOut, Actions.delay(2f), actionFadeIn));
}
但是调用此方法没有任何反应。
我的绘制方法是:
@Override
public void draw(Batch batch, float parentAlpha) {
super.draw(batch, parentAlpha);
batch.draw(objectImage, getX(), getY(), getWidth() * getScaleX(),
getHeight() * getScaleY());
}
如何使图像的Alpha值起作用?
提前致谢!
正如Scene2d Wiki所说,我们需要像这样重写draw:
@Override
public void draw(Batch batch, float parentAlpha) {
Color color = getColor();
batch.setColor(color.r, color.g, color.b, color.a * parentAlpha);
batch.draw(objectImage, getX(), getY(), getWidth() * getScaleX(),
getHeight() * getScaleY());
batch.setColor(color.r, color.g, color.b, 1f);
}
然后你去...
- - - 更新 - - -
我必须在绘制下一行之后添加:
batch.setColor(color.r, color.g, color.b, 1f);
否则,在某些情况下,舞台颜色也会受到影响,而不仅仅是演员。
希望能帮助到你
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句