2010-07-27 60 views
2

我试图使用多个精灵表,因为我无法将它们全部放在一个上面,而且有两个让我更容易排序(精灵表单中的一个精灵位于后面并且具有较低的zOrder)。目前,我正在做的:如何使用多个精灵表单? cocos2d/iPhone

spriteSheet1 = [[CCSpriteSheet spriteSheetWithFile:@"spriteSheet1.png" capacity:3] retain]; 
[[CCSpriteFrameCache sharedSpriteFrameCache]  addSpriteFramesWithFile:@"spriteSheet1.plist"]; 
[self addChild:spriteSheet1]; 

spriteSheet2 = [[CCSpriteSheet spriteSheetWithFile:@"spriteSheet2.png" capacity:4] retain]; 
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"spriteSheet2.plist"]; 
[self addChild:spriteSheet2]; 

CCSprite *sprite = [CCSprite spriteWithSpriteFrameName:@"sprite1.png"]; 

最后一行崩溃与错误: 终止应用程序由于未捕获的异常“NSInternalInconsistencyException”,原因:“雪碧无效spriteFrame” SIGABRT

不允许我到缓存多个精灵表单?如果没有,是否有另一种有效的方法来处理这个问题?

回答

0

如果你使用Zwoptex创建你的spritesheets,请确保你使用了彼此支持的Zwoptex和cocos2d版本。最近Zwoptex已经发生了重大变化,如果您使用的是较早的cocos2d版本,这可能会解释您的崩溃。

一般来说,您提供的代码应该工作得很好,因为所有资源文件都已添加到Xcode中并且名称正确。请记住,iOS设备区分大小写,如果您尝试加载“spriteSheet1.plist”,但该文件实际上命名为“Spritesheet1.plist”,则它也会导致错误(可能是断言或崩溃)。