2010-07-27 20 views
2

J'essaie d'utiliser plus d'une feuille de sprite parce que je ne peux pas les mettre toutes sur un et en avoir deux rend mes commandes plus faciles (les sprites de feuille de sprite sont dans le dos et ont un zOrder plus bas). Je suis actuellement faire:Comment utiliser plus d'une feuille de sprites? 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"]; 

La dernière ligne se bloque avec l'erreur: en raison de l'application Mettre fin exception uncaught « NSInternalInconsistencyException », la raison: « spriteFrame non valide pour sprite » SIGABRT

Suis-je pas le droit de cache plus d'une feuille de sprite? Sinon, y a-t-il un autre moyen efficace de gérer cela?

Répondre

0

Si vous créez vos feuilles de sprites en utilisant Zwoptex, assurez-vous d'utiliser la version de Zwoptex et cocos2d qui se supportent mutuellement. Récemment, il y a eu des changements majeurs à Zwoptex et si vous utilisez une version plus ancienne de cocos2d cela pourrait expliquer votre crash.

En général, le code fourni devrait fonctionner correctement, étant donné que tous les fichiers de ressources ont été ajoutés à Xcode et sont nommés correctement. Gardez à l'esprit que les appareils iOS sont sensibles à la casse, si vous essayez de charger "spriteSheet1.plist" mais que le fichier s'appelle "Spritesheet1.plist", cela conduira également à des erreurs (probablement une assertion ou un crash).