【问题标题】:LibGDX stage fading to black colorLibGDX 舞台褪色为黑色
【发布时间】:2017-07-07 22:36:00
【问题描述】:

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

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

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

【问题讨论】:

    标签: java android libgdx


    【解决方案1】:

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

    所以创建全屏黑色Image 并添加到舞台作为背景。然后在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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      相关资源
      最近更新 更多