将 UIImage 添加到 CCSprite 中? [已关闭]

问题描述 投票:0回答:2

我不知道这是否愚蠢,但我已经为此挠头一两个小时了。

我从

NSData
获取一个
NSUserDefaults
对象,然后将其转换为
UIImage
。现在如何将
CCSprite
的图像设置为 UIImage?

spriteWithFile
在这里不起作用,因为它需要
NSString
。我正在寻找一个具有
UIImage
参数的 API。这可能吗?

有什么想法吗?

编辑1:这是怎么回事?

UIImage *image = [UIImage imageWithData:(NSData*)obj];
sprite = [CCSprite spriteWithCGImage:image.CGImage key:@"mainSprite"];
ios objective-c image cocos2d-iphone
2个回答
10
投票

试试这个:

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

uiImage 是一个 UIImage 对象。


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];
    }
© www.soinside.com 2019 - 2024. All rights reserved.