我已经创建了一个sprite sheet
fornon retina display
并且它在模拟器上运行良好..我已经使用了代码
-(Void)addSprites{
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"image.plist"];
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"image.png"];
[self addChild:spriteSheet];
// Load up the frames of our animation
NSMutableArray *walkAnimFrames = [NSMutableArray array];
for(int i = 1; i < 5; i++) {
[walkAnimFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"image%d.png", i]]];
}
CCAnimation *walkAnim = [CCAnimation animationWithSpriteFrames:walkAnimFrames delay:0.20f];
// Create a sprite for our bear
background = [CCSprite spriteWithSpriteFrameName:@"image1.png"];
background.position = ccp(280, 175);
self.walkAction = [CCRepeatForever actionWithAction:[CCAnimate actionWithAnimation:walkAnim]];
[spriteSheet addChild:background];
}
-(void)startAnimation{
[background runAction:_walkAction];
}
对于设备,我创建了具有双倍大小的视网膜图像的精灵表,图像命名image@2x..
为创建plist
的 ismyplist@2xplist
和图像文件是imagefile@2x.png
我的意思是有4个文件
用于非视网膜显示。
1)imagefile.png(sprite sheet)
2)myPlist.plist
用于 Retina 显示屏。
1)imagefile@2x.png(sprite sheet)
每个图像的 plist 键名也类似于 image@2x.png
2)myPlist@2x.plist
但上面的代码不适用于此代码。我做错了什么或错过了什么?我的应用程序在设备上崩溃并显示错误消息
CCSpriteFrameCache: Frame 'image1.png' not found
2013-05-03 16:19:49.764 *** Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
但上面的代码是working fine on simulator