Spinebot 要在显示动画时将黑色背景设置为透明,可以按照以下步骤操作: 确保图像使用透明背景:在图像编辑软件(如Photoshop)中,将黑色背景替换为透明背景。保存图像时,确保使用支持透明度的格式(如PNG)。 检查预乘Alpha设置:在Spine导出时,不要勾选“预乘Alpha”选项。libgdx会自动处理预乘Alpha,因此不需要在导出时启用它。 设置libgdx的透明帧缓冲区:在libgdx中配置透明帧缓冲区。可以在Lwjgl3ApplicationConfiguration中设置: Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration(); config.setTransparentFramebuffer(true); 确保正确的混合模式:在Spine中,确保使用正确的混合模式。如果使用了加法混合(Additive),请确保图像的背景是透明的,而不是黑色的。 代码示例:以下是一个简单的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的背景都变成黑色的了。