2010-02-09 2 views
1

왜 이런 일이 발생하는지 잘 모르겠습니다.2D 카메라 변형시 XNA가 찢어짐

기본적으로 매트릭스 변환이있는 Spritebatch를 사용하여 타일 맵을 화면에 렌더링합니다.이 이상한 찢어짐이 발생합니다. Tearing Matrix.Identity를 사용하여 렌더링하면 모든 것이 잘 보입니다.

I는 행렬 생성하는 데 사용하는 코드이다 : 변환을 개인 무효 CreateTransformation() { 변환 = Matrix.Identity 생성 # 지역을; Vector3 screenCenter = new Vector3 (graphics.Viewport.Width * 0.5f, graphics.Viewport.Height * 0.5f, 0f);

 transformation *= Matrix.CreateTranslation(-screenCenter); 
     transformation *= Matrix.CreateScale(zoom); 
     transformation *= Matrix.CreateTranslation(screenCenter); 
     transformation *= Matrix.CreateTranslation 
      (position.X * zoom, position.Y * zoom, 0f); 

     mustUpdateTransformation = false; 
    } 
    #endregion 

그리고 이것은 내가의 SpriteBatch 시작하는 데 사용하는 코드입니다 :

public void Draw(SpriteBatch batch) 
    { 
     foreach (var layer in MapLayers) 
     { 
      foreach (Tile T in layer) 
      { 
       batch.Draw(T.SpriteSheet.Texture, T.Position, T.SpriteSheet.SourceRectangle(T.TileIndex), Color.White); 
      } 
     } 
    } 

사람이 무엇을 알고 있습니까 : 여기

 ScreenManager.SpriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.None, camera.Transformation); 

그리고 각 타일을 렌더링하는 데 사용되는 코드입니다 사고?

답변

1

정수 대신 픽셀 공간을 부동 소수점으로 나타내는 것으로 바뀌 었습니다.

관련 문제