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);
请帮帮我。我试试:
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);