LibGDX中的淡入淡出操作无法正常工作

时间:2016-06-14 18:04:20

标签: libgdx fadein actor fadeout

请帮帮我。我试试:

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();
    }

感谢您的回答。

2 个答案:

答案 0 :(得分:4)

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

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

另外,如果你的演员是团体成员并且你希望他们与父母一起消失,那么他们应该考虑父母的角色:

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

答案 1 :(得分:0)

确保您的演员的draw()实现不会改变批处理的颜色