LibGDX中的FadeIn操作无法正常工作

LibGDX中的FadeIn操作无法正常工作,libgdx,fadein,actor,fadeout,Libgdx,Fadein,Actor,Fadeout,请帮帮我。我尝试: actor.addAction(Actions.fadeOut(1.5f)); 我得到: 我的舞台渐渐淡出 所以,我的问题是,为什么不仅要淡出一个演员(我为其应用淡出动作),还要淡出我所有的舞台(或者至少是其他一些演员) 我的渲染: @Override public void render(float delta) { Gdx.gl.glClearColor(255, 255, 255, 1); Gdx.gl.glClear(GL20

请帮帮我。我尝试:

actor.addAction(Actions.fadeOut(1.5f));
我得到: 我的舞台渐渐淡出

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

我的渲染:

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

谢谢您的回答。

确保参与者的draw()实现没有更改批的颜色

确保参与者的draw()实现没有更改批的颜色

您自己的任何参与者类都必须将自己的颜色应用于批。对于BitmapFont和Sprite之类的东西来说,这是不必要的,它们直接将彩色顶点传递给批处理,但是任何调用
batch.draw
的参与者都需要首先传递颜色,即使它是
color.WHITE
,但通常需要将
getColor()
传递给批处理

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

此外,如果您的演员在团队中,并且您希望他们与家长一起淡出,那么他们应该考虑家长阿尔法:

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

您自己的任何actor类都必须对批处理应用自己的颜色。对于BitmapFont和Sprite之类的东西来说,这是不必要的,它们直接将彩色顶点传递给批处理,但是任何调用
batch.draw
的参与者都需要首先传递颜色,即使它是
color.WHITE
,但通常需要将
getColor()
传递给批处理

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

此外,如果您的演员在团队中,并且您希望他们与家长一起淡出,那么他们应该考虑家长阿尔法:

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

@Override public void draw(Batch-Batch,float-parentAlpha){Batch.draw(cardTexture,getX(),getY(),getWidth(),getHeight());super.draw(Batch,parentAlpha);}
您是否直接扩展了actor?然后可以删除super.draw(批处理,parentalpha);否则,请向我展示该方法。
actor.draw中没有必须将批处理颜色保留为白色的“契约”。LibGDX的许多内置小部件都会在批处理中留下任意的旧颜色。相反,在对Actor进行子类化时,您需要注意,不能假定传递到
Actor.draw的批的颜色为
白色
@Override public void draw(批处理,float parentAlpha){batch.draw(cardTexture,getX(),getY(),getWidth(),getHeight());super.draw(batch,parentAlpha);}
您是否直接扩展了actor?然后您可以删除super.draw(batch,parentAlpha);否则,向我显示该方法。没有“合同”在
actor.draw
中,您必须将批处理颜色保留为白色。LibGDX的许多内置小部件将批处理保留为任何旧的任意颜色。相反,在对actor进行子类化时,您需要注意,您不能假定传递到
actor.draw的批处理颜色为
白色
。与您的问题无关,但
glCl>earColor
要求标准化颜色介于0和1之间。与您的问题无关,但
glClearColor
要求标准化颜色介于0和1之间。