java - LibGDX 阶段褪色为黑色

标签 java android libgdx

我的游戏中有多个带有阶段的屏幕,并且我一直在它们之间实现简单的淡入淡出过渡。

它现在可以工作了,但我希望屏幕淡出为黑色。不过,游戏的透明颜色是白色,因此只有舞台明显淡出,背景保持白色。我尝试将 Actions.color(Color.BLACK, Interpolation.fade) 添加到舞台,但什么也没发生。

如何正确实现淡入淡出过渡?

最佳答案

Stage 没有可绘制内容,只有包含所有子级的组。

因此,创建全屏黑色图像并添加到舞台作为背景。然后在 show() 中通过操作将其变为白色,作为您所需的背景。

@Override
public void show() {

    final Image image=new Image(new TextureRegion(GdxTest.getTexture()));
    image.setSize(stage.getWidth(),stage.getHeight());
    image.setOrigin(stage.getWidth()/2,stage.getHeight()/2);
    image.setColor(Color.BLACK);

    stage.addActor(image);
    stage.addListener(new ClickListener(){

        @Override
        public void clicked(InputEvent event, float x, float y) {

            image.addAction(Actions.sequence(Actions.color(Color.BLACK,2),Actions.run(new Runnable() {
                @Override
                public void run() {
                    ((GdxTest)Gdx.app.getApplicationListener()).setScreen(new SecondScreen());
                }
            })));

            super.clicked(event, x, y);
        }
    });

    image.addAction(Actions.color(Color.WHITE,2)); 
}

getTexture() 方法

public static Texture getTexture(){

    Pixmap pixmap;
    try {
        pixmap = new Pixmap(1, 1, Pixmap.Format.RGBA8888);
    }catch (GdxRuntimeException e)
    {
        pixmap=new Pixmap(1,1, Pixmap.Format.RGB565);
    }
    pixmap.setColor(Color.WHITE);
    pixmap.drawRectangle(0,0,1,1);

    return new Texture(pixmap);
}

关于java - LibGDX 阶段褪色为黑色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44980601/

相关文章:

Java 8,静态方法与函数

java - 如何传递按钮 Intent 以在另一个 Activity 中更改颜色?

java - 使用 iText 加密 PDF 以禁止内容复制和打印

java - android - 如何在单击按钮时播放音频和显示 TextView

java - libGDX ObjectOutputStream 写入失败并出现 FileNotFoundException

java - "instanceof Void"总是返回 false 吗?

android - Android 上的 cocos2d-x 屏幕闪烁

android - 如何在 Eclipse 的 Android 应用程序模板中编辑内容?

android - 从屏幕触摸中过滤 Actor 触摸

java - 即使相机放大,如何保持某些纹理大小不变?