2011-11-11 13 views
6

मुझे नहीं पता कि यह बेवकूफ है या नहीं, लेकिन मैं इस पर अपने सिर को लगभग एक या दो घंटे तक खरोंच कर रहा हूं।CCIIprite को UIImage जोड़ें?

मुझे ऑब्जेक्ट NSUserDefaults से प्राप्त हो रहा है और फिर इसे UIImage में परिवर्तित कर रहा है। अब मैं अपने UIImage में अपने CCSprite की छवि कैसे सेट करूं?

spriteWithFile यहां काम नहीं करता है क्योंकि इसे NSString की आवश्यकता है। मैं एक एपीआई की तलाश में हूं जिसमें UIImage का पैरामीटर है। क्या यह संभव है?

कोई विचार?

संपादित करें: यह कैसा है?

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 का उपयोग करने का सामान्य तरीका कर रहे हैं। मुझे एनएसएसटींग की बजाय यूआईएममेज पास करने की ज़रूरत है! –

+0

मेरा संपादित कोड ऊपर है कृपया इसे जांचें। – banu

+1

initWithImage को बहिष्कृत किया गया है। क्या आपको लगता है कि नए एपीआई का उपयोग करना चाहिए था? और तस्वीर के अलावा, स्प्राइट की शारीरिक उपस्थिति कोई अलग नहीं है क्योंकि मैं सीसीटीईक्चर 2 डी का उपयोग करता हूं? मेरी मूल पोस्ट –

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