• Runtimes
  • 显示动画时,能将黑色背景设置为透明的吗?


我的动画的图片是这样的,我想在运行这个动画的时候,让黑色的背景变成透明的,请问应该如何操作?
我使用的运行库是libgdx。

Related Discussions
...

要在显示动画时将黑色背景设置为透明,可以按照以下步骤操作:

  1. 确保图像使用透明背景:在图像编辑软件(如Photoshop)中,将黑色背景替换为透明背景。保存图像时,确保使用支持透明度的格式(如PNG)。

  2. 检查预乘Alpha设置:在Spine导出时,不要勾选“预乘Alpha”选项。libgdx会自动处理预乘Alpha,因此不需要在导出时启用它。

  3. 设置libgdx的透明帧缓冲区:在libgdx中配置透明帧缓冲区。可以在Lwjgl3ApplicationConfiguration中设置:

        Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
        config.setTransparentFramebuffer(true);
  4. 确保正确的混合模式:在Spine中,确保使用正确的混合模式。如果使用了加法混合(Additive),请确保图像的背景是透明的,而不是黑色的。

  5. 代码示例:以下是一个简单的libgdx代码示例,展示如何设置透明背景:

        public class MyGdxGame extends ApplicationAdapter {
            SpriteBatch batch;
            Texture img;
    
            @Override
            public void create () {
                batch = new SpriteBatch();
                img = new Texture("your_image_with_transparent_background.png");
            }
    
            @Override
            public void render () {
                Gdx.gl.glClearColor(0, 0, 0, 0);
                Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
                batch.begin();
                batch.draw(img, 0, 0);
                batch.end();
            }
    
            @Override
            public void dispose () {
                batch.dispose();
                img.dispose();
            }
        }

通过以上步骤,你应该能够在运行动画时将黑色背景设置为透明。

  • csbz17027 ответили на это сообщение.

    Spinebot 感谢回复。但按照你的方法我并没有实现想要的效果。
    我是在android中使用libgdx,它并没有Lwjgl3ApplicationConfiguration这个类。
    我在render函数中添加Gdx.gl.glClearColor(0, 0, 0, 0)后,整个view的背景都变成黑色的了。