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