2013-07-23 5 views
0

현재 개인 프로젝트의 경우 XNA를 사용하여 2D 측면 스크롤러 게임을 만들고 있습니다. 내 목표는 순간적으로 쉐이더를 사용하는 것입니다. 하지만 실제로 SetRenderTarget (RenderTarget2D) 메서드에 의해 붙어있어, 일단 내가 게임을 호출하면 전체 보라색 화면 가져옵니다 이해가 안 돼요.XNA 4.0 SetRenderTarget 전체 보라색 화면으로 표시

나는 어디에서나 검색하고 여전히 문제가 어디인지는 모르겠지만 스프라이트 배치를 시작하는 방식 때문일 것으로 생각됩니다.

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

BackBuffer가 아닌 RenderTarget에 그리는 중입니다. BackBuffer에 아무 것도 그리지 않으면 기본값이 자주색으로 바뀝니다. RenderTarget이 null로 설정되어있는 동안 Draw를 선택하면 화면에 표시되는 내용을 나타내는 BackBuffer로 그립니다. RenderTargets는 화면에서 물건을 그리기위한 것입니다.

+0

답장을 보내 주셔서 감사합니다. 나는 그것에 대해 더 많이 읽었어야했다. – RationalGaze