XNAで2Dゲームを作っています。ドローアブル ゲーム コンポーネントの使用から始めて、とても満足しました。すべてのスプライトは drawable-game-component から派生し、それぞれに独自の begin/end ステートメントがあります (壁を構成する各タイルも)。それ以来、少し読んだ後、これはパフォーマンスのために悪い方法であることに気付きました。
今、私はそれを行うための良い方法は何だろうと思っています.私のゲームの各部屋について言ってみましょう...
_spritebatch.Begin(SpriteSortMode.Deferred,
BlendState.Opaque,
SamplerState.LinearClamp,
DepthStencilState.Default,
RasterizerState.CullNone,
null,
_camera.Transform);
for (each block in Blocklist)
{
_spritebatch.Draw(block._txture,
block._position + block._centerVect,
block.txtrect, block._color,
(float)block.txtrot,
block._centerVect,
1.0f,
SpriteEffects.None,
0f);
}
_spritebatch.End();
私が尋ねている理由は、各ブロックのフィールドを公開する必要があるためです。これにより、Room クラスは、_spritebatch.Draw などを実行できるようになります。block._position
これは本当に問題ではなく、パフォーマンスが向上すると思いますが、これを行うために推奨できるより良いアーキテクチャはありますか?
また、そのコードがそこにあるので、私が使用している SpriteBatch.Begin パラメータについて誰かコメントできますか? 彼らは最速のものですか?そこに必要なのは変換だけです