Xcode Cocos2D如何添加50个没有延迟的精灵

时间:2013-04-14 23:40:08

标签: xcode cocos2d-iphone

我需要在屏幕上添加大约50个精灵然后重绘它们。当我尝试像这样添加它们时:

[self addChild:Img];

这会造成很多延迟。

我还尝试创建一个CCLayer,然后将所有图像添加到图层,但我得到相同的滞后量。如何添加所有这些精灵并减少滞后?大多数游戏每页可能有超过50个精灵。

2 个答案:

答案 0 :(得分:1)

如果您的所有或大部分精灵都相同,那么您可以为共享相同纹理或图像的所有CCSprit使用一个 CCSpriteBatchNode 。这样可以节省内存。

您可以执行以下操作,

1)定义CCSpriteBatchNode

2)将其添加为子视图。

3)从batchNode

定义一个框架

4)将其设置为精灵的displayFrame

答案 1 :(得分:0)

使用CCSpriteSheet,如果您尚未使用精灵表,请将它们视为您将精灵放入其中的巨大图像。它们带有一个文件,指定每个sprite的边界,以便在代码中需要时将它们拉出来。

之所以使用这些是个好主意,是因为Cocos2D针对它们进行了优化。如果你在sprite表中正确使用sprite,而不是每个sprite进行一次OpenGL ES绘制调用,那么每个sprite表只需要一个。

简而言之 - 它更快,特别是当你有很多精灵时!