使用CCRenderTexture将CCSprite转化为UIImage,将该函数写成UIImage的类别(catogery)
UIImage+Sprite.h
#import <Foundation/Foundation.h> #import "cocos2d.h" @interface UIImage (Sprite) + (UIImage *)convertSpriteToImage:(CCSprite *)sprite;
- (CCSprite *) convertImageToSprite:(UIImage *) image; @end
UIImage+Sprite.m
#import "UIImage+Sprite.h" @implementation UIImage (Sprite) + (UIImage *)convertSpriteToImage:(CCSprite *)sprite { CGPoint p = sprite.anchorPoint; [sprite setAnchorPoint:ccp(0,0)]; CCRenderTexture *renderer = [CCRenderTexture renderTextureWithWidth:sprite.contentSize.width height:sprite.contentSize.height]; [renderer begin]; [sprite visit]; [renderer end]; [sprite setAnchorPoint:p]; return [UIImage imageWithData:[renderer getUIImageAsDataFromBuffer:kCCImageFormatPNG]]; }
-(CCSprite *) convertImageToSprite:(UIImage *) image
{
CCTexture2D *texture = [[CCTexture2D alloc] initWithImage:image];
CCSprite *sprite = [CCSprite spriteWithTexture:texture];
[texture release];
}
@end