我在 XNA 中制作 2d 游戏。我开始使用可绘制的游戏组件并且非常高兴。每个精灵都派生自 drawable-game-component 并且每个精灵都有自己的开始/结束语句(甚至每个图块构成一堵墙)。我在读了一点之后意识到这是一种不好的方式来提高性能。
现在我想知道有什么好的方法来做到这一点......让我们说我游戏中的每个房间......
_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 例如。块._位置
我假设这并不重要,性能会提高,但是有没有人可以推荐的更好的架构来做到这一点?
此外,由于该代码在那里,任何人都可以评论我正在使用的 SpriteBatch.Begin 参数吗?他们是最快的吗?我需要的只是变换