2011-11-11 19 views
6

Bunun aptalca olup olmadığını bilmiyorum ama şu an kafamı bir buçuk saat tırmandım.CCSprite UIImage'ı ekleyin?

NSUserDefaults numaralı NSData nesnesini alıyorum ve daha sonra UIImage ürününe dönüştürüyorum. Şimdi UIImage'ım için CCSprite görüntüümü nasıl ayarlayabilirim? NSString gerektirdiğinden, burada çalışmaz.

spriteWithFile burada çalışmaz. UIImage parametresine sahip bir API arıyorum. Mümkün mü?

Herhangi bir fikrin var mı?

Edit1: Bu nasıl?

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

UIImage bir UIImage nesnesidir:

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

cevap

10

bu bir deneyin.

+0

Ben CCSprite kullanmak zorunda:/Ve ilk örnekte bunu bir NSString kullanarak normal bir şekilde yapıyoruz. Bir NSString yerine bir UIImage geçirmeliyim! –

+0

Düzenlenmiş kodumun üstünde olduğunu lütfen kontrol edin. – banu

+1

initWithImage kullanımdan kaldırıldı. Daha yeni API'nın kullanılmasının kullanılmasının gerekliliğini gösterir misiniz? Resmin yanı sıra, hareketli grafiğin fiziksel görünümü de farklı değil çünkü CCTexture2D'yi doğru kullanıyorum? initWithImage orijinal yazı –

1

Bu yöntem benim için mükemmel çalışıyor ...

-(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]; 
    }