I have the following code:
enemies = [[NSMutableArray alloc] init];
CCSpriteSheet *spriteSheet = [CCSpriteSheet spriteSheetWithFile:@"skeleton.png" capacity:50];
[self addChild:spriteSheet z:0 tag:kTagSpriteSheetSkeleton];
for(int i = 0; i < 20; i++) {
Enemy *enemy = [[Enemy alloc] init];
CCSprite *sprite = [CCSprite spriteWithSpriteSheet:spriteSheet rect:CGRectMake(0, 0, 128, 128)];
[sprite setPosition:ccp(-500, -500)]; // start offscreen
[spriteSheet addChild:sprite z:0 tag:i];
[enemy setSprite:sprite];
[enemies addObject:enemy];
}
When the code tries to create the Sprite from the SpriteSheet, it crashes on the NSAssert inside CCSprite's initWithTexture:rect: method. Debugging shows that the SpriteSheet's texture property is 0x0 (nil?). What could be causing this? Why doesn't the CCSpriteSheet initilization fail before the CCSprite's?