2013-07-23 2 views
0

В настоящее время я делаю 2D-скроллер с XNA для моего личного проекта. Моя цель на данный момент - повеселиться с шейдерами. Но я фактически застрял в методе SetRenderTarget (RenderTarget2D), я не понимаю, почему, как только я его называю, игра получает полный фиолетовый экран.XNA 4.0 SetRenderTarget результат в полном фиолетовом экране

Я искал всюду, и я до сих пор не понимаю, где проблема, но я думаю, что это возможно из-за моего способа начать 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

Вы рисуете на RenderTarget, а не на BackBuffer. Когда вы не делаете ничего для BackBuffer, он по умолчанию имеет фиолетовый цвет. Нарисуйте, пока RenderTarget настроен на нуль, чтобы привлечь к BackBuffer, который определяет то, что вы видите на экране. RenderTargets предназначены для рисования объектов с экрана.

+0

Спасибо за ваш ответ. Я должен был прочитать об этом больше. – RationalGaze

Смежные вопросы