如何使用多个精灵表?的cocos2d / iPhone

时间:2010-07-27 19:44:36

标签: iphone cocos2d-iphone sprite sprite-sheet

我正在尝试使用多个精灵表,因为我无法将它们全部放在一个上,并且有两个使我的命令更容易(精灵表一个精灵在后面并且有一个较低的zOrder)。我现在正在做:

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'而终止应用程序,原因:'sprite的无效spriteFrame'SIGABRT

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

1 个答案:

答案 0 :(得分:0)

如果您使用Zwoptex创建精灵表,请确保使用相互支持的Zwoptex和cocos2d版本。最近Zwoptex发生了重大变化,如果您使用的是较旧的cocos2d版本,这可能会解释您的崩溃。

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