-2

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

[self addChild:Img];

这会造成很多滞后。

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

4

2 回答 2

1

If all or most of your sprites are the same, then you could use one CCSpriteBatchNode for all CCSprites sharing the same texture or image. This will save memory.

You would do something like the following,

1)define a CCSpriteBatchNode

2)add it as a subview.

3)define a frame from the batchNode

4)set it as displayFrame for the sprite

于 2013-04-15T03:41:33.130 回答
0

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

之所以使用这些是一个好主意,是因为 Cocos2D 已针对它们进行了优化。如果您在精灵表中正确使用精灵,而不是为每个精灵制作一个 OpenGL ES 绘制调用,它只会为每个精灵表制作一个。

简而言之——它更快,尤其是当你有很多精灵时!

于 2013-04-15T08:45:11.567 回答