LibGDX 中的 FadeIn Action 无法正常工作

FadeIn Action in LibGDX not working correctly

请帮帮我。我试试:

actor.addAction(Actions.fadeOut(1.5f));

我得到: 我所有的舞台都在淡出。

所以,我的问题是为什么不仅淡出我应用了 fadeOut 动作的一个演员,而且淡出我所有的舞台(或至少一些其他演员)?

我的渲染:

@Override
    public void render(float delta) {
        Gdx.gl.glClearColor(255, 255, 255, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        stage.draw();
        stage.act();
    }

感谢您的回答。

确保 actor 的 draw() 实现没有改变批处理的颜色

您自己的任何演员 class 都必须将自己的颜色应用到批处理中。这对于像 BitmapFont 和 Sprite 这样的东西来说是不必要的,它们将彩色顶点直接传递给批处理,但是任何调用 batch.draw 的 actor 都需要先传递一种颜色,即使它是 Color.WHITE,但通常你会想将 getColor() 传递给批处理。

这是因为无法保证之前绘制的任何演员在批次中留下了什么颜色。

此外,如果您的演员成群结队并且您希望他们随着 parent 一起淡出,那么他们应该考虑 parent alpha:

Color color = getColor();
batch.setColor(color.r, color.g, color.b, color.a * parentAlpha);