2

SpriteBatch.Being と .End を持つ独自の描画関数を含むフォントと画像を表示するクラスがある場合

そして、描画関数を1000回繰り返す別の関数があります! 私の質問は、これらの 2 行のコードによってパフォーマンスが低下するかということです。

spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend);
spriteBatch.End();

別の方法として、これら 2 行のコードを何千回も繰り返さずに描画機能を管理する別のクラスを用意することです。

4

3 に答える 3

0

Only call spritebatch begin and end if you are going to draw, but if your method that's drawing is inside a begin and end block, then you don't need it. I suggest making a "draw" method for your class, then in the Game1.Draw method you can call that method, instead of calling it inside a custom class. Game1.Draw is the place to call spritebatch.begin and end, not in a custom class. Hope this helps!

于 2016-04-21T12:11:13.560 に答える
0

描画呼び出しごとに Begin と End を呼び出すことはお勧めしません。SpriteBatch は描画呼び出しをキューに入れるので、描画コードはできるだけ速く解釈されます (たとえば、スプライトを深さまたはテクスチャで並べ替えることができます。SpriteBatch はすべての面倒な作業を行います)。すべての 2D 描画を開始および終了するとき、または SortMode を変更するときなどにのみ、Begin と End を呼び出す必要があります。

于 2013-06-14T13:19:48.370 に答える