我目前正在使用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);
}
有什么想法吗?在此先感谢:)
答案 0 :(得分:0)
您正在绘制RenderTarget而不是BackBuffer。当您不向BackBuffer绘制任何内容时,它默认为紫色。在RenderTarget设置为null的情况下绘制以绘制到BackBuffer,后者指示您在屏幕上看到的内容。 RenderTargets用于在屏幕上绘制内容。