我需要在屏幕上添加大约50个精灵然后重绘它们。当我尝试像这样添加它们时:
[self addChild:Img];
这会造成很多延迟。
我还尝试创建一个CCLayer,然后将所有图像添加到图层,但我得到相同的滞后量。如何添加所有这些精灵并减少滞后?大多数游戏每页可能有超过50个精灵。
答案 0 :(得分:1)
如果您的所有或大部分精灵都相同,那么您可以为共享相同纹理或图像的所有CCSprit使用一个 CCSpriteBatchNode 。这样可以节省内存。
您可以执行以下操作,
1)定义CCSpriteBatchNode
2)将其添加为子视图。
3)从batchNode
定义一个框架4)将其设置为精灵的displayFrame
答案 1 :(得分:0)
使用CCSpriteSheet,如果您尚未使用精灵表,请将它们视为您将精灵放入其中的巨大图像。它们带有一个文件,指定每个sprite的边界,以便在代码中需要时将它们拉出来。
之所以使用这些是个好主意,是因为Cocos2D针对它们进行了优化。如果你在sprite表中正确使用sprite,而不是每个sprite进行一次OpenGL ES绘制调用,那么每个sprite表只需要一个。
简而言之 - 它更快,特别是当你有很多精灵时!