0

我正在做一个项目。所有 2D 使用 spriteBatch。

我正在让诸如爆炸之类的东西使用不适用于图像其余部分的自定义效果。所以这是我到目前为止的流程:

1)清除背景

2)绘制所有的爆炸精灵

3)捕获该图像并将我的效果实现到单独的 RenderTarget2D

4)画我的背景

5)绘制步骤3中创建的RenderTarget2D

6)绘制其他所有内容

我遇到的问题是创建的 RenderTarget2D 在未绘制的区域中不透明。结果,没有显示在步骤4中绘制的背景。

在对 SetRenderTarget(null) 的任何调用之后,我都尝试了 GraphicsDevice.Clear(Color.Transparent)。但是,我仍然得到那个紫色背景。

有任何想法吗?

我会发布代码,但是你们所有人都必须解析太多。

4

1 回答 1

0

如果您遵循此流程,它应该可以工作;

    GraphicsDevice.SetRenderTarget(renderTarget);
    GraphicsDevice.Clear(Color.Transparent);
    // Draw stuff to texture
    GraphicsDevice.SetRenderTarget(null);

    GraphicsDevice.Clear(BackgroundColor);  // Important to clear here
    // Draw background
    // Draw texture
    // Draw stuff
于 2013-05-04T18:38:07.630 回答