sprite sheet
forを作成し、non 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];
}
そして、デバイス用に、2倍のサイズの網膜画像を含むスプライトシートを作成しimage@2x..
、作成されたplist
画像myplist@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