2011-11-11 13 views
6

これは愚かではないかどうかわかりませんが、私はこれ以上約1時間か2時間頭を掻いています。CCSpriteにUIImageを追加しますか?

NSDataオブジェクトはNSUserDefaultsからUIImageに変換されています。今私のの画像を私のUIImageにセットするには?

spriteWithFileは、NSStringが必要なためここでは機能しません。私はUIImageのパラメータを持つAPIを探しています。これは可能ですか?

アイデア?

編集1:これはどうですか?

UIImage *image = [UIImage imageWithData:(NSData*)obj]; 
sprite = [CCSprite spriteWithCGImage:image.CGImage key:@"mainSprite"]; 

答えて

10

この方法を試してください。

CCTexture2D *tex = [[[CCTexture2D alloc] initWithImage:uiImage] autorelease]; 
CCSprite *sprite = [CCSprite spriteWithTexture:tex]; 

uiImageはUIImageオブジェクトです。

+0

は私がCCSpriteを使用する必要があります:/そして、最初の例では、あなたがそれをNSStringのを使用しての通常の方法を行っています。私はNSStringの代わりにUIImageを渡す必要があります! –

+0

私の編集したコードは上記のとおりです。 – banu

+1

initWithImageは推奨されていません。新しいAPIの使用方法を見せてもらえますか?そして、絵のほかに、私がCCTexture2Dを正しく使用しているため、スプライトの物理的な外観も変わっていませんか?私のオリジナルのポスト –

1

この方法は、私のために完璧に働いている...

-(CCSprite*)spriteFromDiskFileName:(NSString*)fileName 
    { 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); 
     NSString *directoryPath = [paths objectAtIndex:0] ; 
     NSData *imageData = [[NSData alloc]initWithContentsOfFile:[directoryPath stringByAppendingPathComponent:fileName]]; 

     UIImage *spriteImage = [UIImage imageWithData:imageData]; 

     if (spriteImage) { 
      printf("\nUIImage created from disk image \n"); 
     } 
     else 
     { 
      printf("\nUIImage creation failed from disk image \n"); 
     } 

     CCTexture2D *texture = [[CCTexture2D alloc] initWithCGImage:spriteImage.CGImage resolutionType:kCCResolutionUnknown]; 
     return [CCSprite spriteWithTexture:texture]; 
    } 
関連する問題