nan*_*ano 2 action alpha actor libgdx
我有一个带有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));
}
Run Code Online (Sandbox Code Playgroud)
但是在调用此方法时没有任何反应.
我的绘制方法是:
@Override
public void draw(Batch batch, float parentAlpha) {
super.draw(batch, parentAlpha);
batch.draw(objectImage, getX(), getY(), getWidth() * getScaleX(),
getHeight() * getScaleY());
}
Run Code Online (Sandbox Code Playgroud)
如何使图像的alpha值有效?
提前致谢!
正如scene2d wiki所说,我们需要覆盖这样的绘图:
@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);
}
Run Code Online (Sandbox Code Playgroud)
瞧...
-----更新-----
绘制下一行后我不得不添加:
batch.setColor(color.r, color.g, color.b, 1f);
Run Code Online (Sandbox Code Playgroud)
否则在某些情况下舞台颜色也会受到影响,而不仅仅是演员.
希望能帮助到你