2011-11-11 2 views
6

이것이 바보인지 아닌지는 잘 모르겠지만 지금은 약 1-2 시간 동안 내 머리를 긁적니다.CCSprite에 UIImage를 추가 하시겠습니까?

NSData 개체가 NSUserDefaults에서 UIImage으로 변환됩니다. 이제 내 UIImage에 내 CCSprite의 이미지를 어떻게 설정합니까?

spriteWithFileNSString이 필요하므로 여기서는 작동하지 않습니다. UIImage 매개 변수가있는 API를 찾고 있습니다. 이것이 가능한가?

아이디어가 있으십니까?

편집 1 : 이것은 어떻습니까?

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

있는 UIImage있는 UIImage 객체입니다 :

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

답변

10

이 하나 봅니다.

+0

나는 CCSprite를 사용해야합니다 :/그리고 첫 번째 예제에서 당신이 그것을있는 NSString를 사용하는 일반적인 방법을 다하고 있습니다. NSString 대신 UIImage를 전달해야합니다! –

+0

수정 된 코드는 위의 내용을 확인하십시오. – banu

+1

initWithImage는 더 이상 사용되지 않습니다. 새로운 API의 사용을 보여 주시겠습니까? 그리고 그림 외에도 스프라이트의 물리적 인 외관은 CCTexture2D를 사용하기 때문에 전혀 다르지 않습니다. initWithImage 내 원래 포스트 –

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]; 
    } 
관련 문제