XNA 4.0 SetRenderTarget导致全紫色屏幕

时间:2013-07-23 17:13:25

标签: c# xna xna-4.0 spritebatch

我目前正在使用XNA为我的个人项目制作2D侧卷轴游戏。我目前的目标是与着色器玩得开心。但我实际上被SetRenderTarget(RenderTarget2D)方法所困,我不明白为什么一旦我称之为游戏就会得到一个完整的紫色屏幕。

我到处搜索,我仍然不明白问题出在哪里,但我认为这可能是由于我开始编写spritebatch的方式。

public void Draw(GraphicsDevice graphics, SpriteBatch spriteBatch, RenderTarget2D mainScene)
    {
        graphics.SetRenderTarget(mainScene);
        graphics.Clear(Color.Black);
        spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, _camera.GetViewMatrix(Parallax));

        foreach(Sprite sprite in Sprites)
            sprite.Draw(spriteBatch);

        spriteBatch.End();
        graphics.SetRenderTarget(null);            
    }

有什么想法吗?在此先感谢:)

1 个答案:

答案 0 :(得分:0)

您正在绘制RenderTarget而不是BackBuffer。当您不向BackBuffer绘制任何内容时,它默认为紫色。在RenderTarget设置为null的情况下绘制以绘制到BackBuffer,后者指示您在屏幕上看到的内容。 RenderTargets用于在屏幕上绘制内容。