当我将 CCSpriteFrameCache 或 CCSpriteBatchNode 添加到我的 cocos2d 应用程序时,我不明白我在做什么。有人能解释一下以下几点吗(如果你能解释一些会很有帮助;请根据你回答的问题在你的答案前面写相应的字母):
[所有问题都意味着实现最佳性能和最低内存使用]
a)为每一层创建精灵表是否至关重要?(例如:Menu - 自己的精灵表,GameLayer - 自己的精灵表...)
b)有人可以解释为什么我必须将精灵添加到批处理节点,以及批处理节点通常是什么?
b1)那么,为什么我不能这样做:
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"menusprites.plist"];
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"menusprites.png"];
[self addChild:spriteSheet];
然后通过调用将精灵添加到我的图层
CCSprite *mySprite = [CCSprite spriteWithSpriteFrameName:@""];
[self addChild:mySprite];
不将它们添加到批处理节点?因为据我了解,它的工作原理是这样的:
我将带有所有精灵的精灵表添加到屏幕上。然后我的应用程序进入 plist 并查找我想要显示的精灵的坐标,然后将其放置在屏幕上。那我为什么要打电话
[spriteSheet addChild:mySprite];
?
c)当我不再需要它时,我如何摆脱spritesheet以用于记忆目的?