2012-10-03 106 views
1

我一直在用XNA制作2D游戏,它会有几个独特的敌人。我毫不费力地在屏幕上绘制独立的精灵,一个在另一个上不会造成两个敌人的相似,但我认为如果不是每个敌人画十个精灵,我会以某种方式将这些精灵合并为一个精灵表。游戏运行时,从现有的精灵表创建一个精灵图表?

如果我在屏幕上有很多这样的敌人,如果我合并,我会提高性能吗?有没有一种简单的方法可以让我以这种方式创建新的精灵表单,或者答案很复杂?

+0

这可能不是一个有价值的优化 - 除非您已经测量并确定了性能瓶颈。这是一个很大的工作,很少有收获。批处理中的单个精灵是相当便宜的(如果您避免使用精灵表进行纹理更改 - [更多信息](http://gamedev.stackexchange.com/a/9289/288))。 –

+0

为了我自己的澄清,你是否要求在运行时动态创建精灵图表?为什么不在编译之前创建精灵表并将其作为普通内容管道的一部分加载? –

回答

0

绘制一个精灵而不是几个可以更快。但是,如果您有性能问题,我只会推荐这一点。 SpriteBatch的绘图精灵速度非常快。它具有很好的功能,可以绘制相同纹理的绘制调用,这使得它非常快速。如果您为每个敌人创建单独的纹理,则可能会失去此功能,这可能会导致性能下降。如果表格不会太大,则创建一个较大的精灵表格可能会更好。

要创建这样的图纸,您必须创建纹理/渲染目标并对其进行渲染。 Here是如何与XNA做到的。