我无法让我的sprite批处理节点工作,部分原因是因为我不明白这个概念已经完成。 SpriteFrameCache是共享的,这使得访问变得容易,但是SpriteBatchNode并不是这样,我不知道从另一个类访问它的最佳方式。
我在我的主GameplayLayer.m中将我的精灵批处理节点设置为实例变量:
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"MyTexture.plist"];
spriteBatchNode = [CCSpriteBatchNode batchNodeWithFile:@"MyTexture.png"];
但是我有一个Monster类,在类中设置了动画,但是sprite是在我的GameplayLayer类中创建的纹理中:
CCAnimation *walkAnim = [CCAnimation animation];
[walkAnim addSpriteFrame:[spriteFrameCache spriteFrameByName:@"monster-sprite-walk0.png"]];
//some other code
self.monsterWalkAnimation = [CCRepeatForever actionWithAction:walkAnimationAction];
哪个不起作用,我猜是因为它不知道纹理在哪里。访问精灵批处理节点的最佳方法是什么,或者我设置错误了?