2017-08-26 5 views
0

J'ai le code dans C# XNA dans Draw metod.XNA SpriteBatch split

spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, CameraMatrix()); 
spriteBatch.Draw... (1) 
spriteBatch.Draw... (2) 
spriteBatch.End(); 
base.Draw(gameTime); 

Je veux découper mon metod Draw. Parce que j'ai dans SpriteBatch.begin Matrix et ont peur de la performance -> compter avec les mathématiques. Je veux du code quelque chose comme ça.

spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, CameraMatrix()); 
spriteBatch.Draw... (1) 
spriteBatch.End(); 

spriteBatch.Begin(); 
spriteBatch.Draw... (2) 
spriteBatch.End(); 

base.Draw(gameTime); 

... mais il ne dessine pas. Quelqu'un peut-il m'aider?

Répondre

0

Je divise mon spriteBatch dans la méthode exacte que vous décrivez et cela fonctionne très bien. Veillez-vous à ajuster les positions d'appel au tirage dans le second jeu pour tenir compte de l'origine modifiée? Avec aucun argument pour spriteBatch.Begin(), seuls les sprites à l'intérieur du rectangle Viewport (ou des parties de ceux-ci) seront dessinés.