我不知道这是否愚蠢,但我已经为此挠头一两个小时了。
我从
NSData
获取一个 NSUserDefaults
对象,然后将其转换为 UIImage
。现在如何将 CCSprite
的图像设置为 UIImage?
spriteWithFile
在这里不起作用,因为它需要 NSString
。我正在寻找一个具有 UIImage
参数的 API。这可能吗?
有什么想法吗?
编辑1:这是怎么回事?
UIImage *image = [UIImage imageWithData:(NSData*)obj];
sprite = [CCSprite spriteWithCGImage:image.CGImage key:@"mainSprite"];
试试这个:
CCTexture2D *tex = [[[CCTexture2D alloc] initWithImage:uiImage] autorelease];
CCSprite *sprite = [CCSprite spriteWithTexture:tex];
uiImage 是一个 UIImage 对象。
这个方法对我来说非常有效......
-(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];
}