我不太清楚在我的cocos2d应用程序中添加CCSpriteFrameCache或CCSpriteBatchNode时具体做了什么。有人能解释以下几点吗(如果你能解释几个就很有帮助,请在回答问题的字母前写上对应的字母):
[所有问题都意味着达到最佳性能和最低内存使用]
a)每个图层都创建精灵表是至关重要的吗? (例如:菜单-自己的精灵表,游戏层-自己的精灵表...)
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];
怎么样才能在不需要精灵图时为了节省内存而将其删除呢?