我正在开发基于2D的游戏。我已将事物分解为诸如skybackground,landbackground,城镇,UI等组件,并且每个组件都处理其绘图。在调用任何绘制调用之前,使用默认值I spritebatch.Begin()
,以便在1批次中绘制所有内容。什么是平铺纹理的更经济的方法?
为了绘制地块,我反复在整个地区绘制一个方形的土地纹理,直到我填满它。然而,有一个名为linear wrap
的spriteBatch
模式就是这样做的。不利的一面是,我将不得不改变我的设计,将我的全球产品spritebatch.begin()
多次拆分为每个组件。
所以我的问题是什么更好/更经济,手动平铺纹理或拆分子组件之间的begin()
和end()
?
还有其他问题可能需要我拆分一个spriteBatch.Begin()
,那么多1个额外的spriteBatch.Begin()
有多重要?还是10个?还是100多?我想知道在什么规模下我应该开始担心增加更多begins()
。
3次读过这个问题,我不明白超过1个spritebatch可以提供多大的帮助。在xna中,您应该绘制从您的绘图中调用的绘图或方法的所有内容。这导致你总是可以将批处理作为引用发送到需要的地方,所以你为什么想要多于一个。有些代码可以帮助我们获得一种方法来将开始/精灵的数量减少到一个。 – Olle89