libgdx actor - 未绘制alpha动作

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值有效?

提前致谢!

nan*_*ano 6

正如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)

否则在某些情况下舞台颜色也会受到影响,而不仅仅是演员.

希望能帮助到你