Cocos2d屏幕截图并从UIImage获取精灵

时间:2013-05-30 11:53:40

标签: cocos2d-iphone uiimage screen sprite capture

我对此问题非常头疼,我正在使用这些代码捕获屏幕的一部分

-(UIImage *) glToUIImage {

    userphotoCount++;
    [CCDirector sharedDirector].nextDeltaTimeZero = YES;

    CGSize winSize = [CCDirector sharedDirector].winSize;

    CCLayerColor* whitePage = [CCLayerColor layerWithColor:ccc4(255, 255, 255, 0) width:winSize.width height:winSize.height];
    whitePage.position = ccp(winSize.width/2, winSize.height/2);

    CCRenderTexture* rtx = [CCRenderTexture renderTextureWithWidth:815 height:532];
    [rtx begin];
    [whitePage visit];
    [[[CCDirector sharedDirector] runningScene] visit];
    [rtx end];

    return [rtx getUIImageFromBuffer];

}

我可以通过

获取我的UIImage
image = [self glToUIImage];

然后我尝试使用此代码通过UIImage生成精灵

-(void) ImageSprite{

image = [self glToUIImage];
userAns =  [CCSprite spriteWithCGImage:image.CGImage key:[NSString stringWithFormat:@"photoCap%d.png", userphotoCount]];
    userAns.position=ccp(780,410);
    userAns.scale=0.6;
        [self addChild:userAns z:20];
}

我可以在第一时间通过这些代码获取图像,但是在我更改了屏幕内容并使用这些代码生成带有新内容的新精灵(新UIImage)后,我失败了....图像没有' t改为新形象...

每次运行“imageSprite”代码时,如何获取新的图像精灵?

1 个答案:

答案 0 :(得分:0)

您可以获取新的图片精灵,但您必须更改密钥

[CCSprite spriteWithCGImage:image.CGImage键:];