0

sprite sheetforを作成し、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

4

2 に答える 2