iphone - cocos2d problem - layer not updating quick enough -
i adding overlays cocos2d layer in preparation screenshot...
cgsize winsize = [[ccdirector shareddirector] winsize]; ccscene* currentscene = [[ccdirector shareddirector] runningscene]; gamelayer* toplayer = (gamelayer *)[currentscene.children objectatindex:0]; ccsprite *middlebackground = [ccsprite spritewithfile:@"mid_bg.png"]; middlebackground.position = ccp(winsize.width * 0.5,winsize.height * 0.55); [toplayer addchild:middlebackground z:3 tag:111]; ccsprite *bottombackground = [ccsprite spritewithfile:@"bot_bg.png"]; bottombackground.position = ccp(winsize.width * 0.5,winsize.height * 0.1); [toplayer addchild:bottombackground z:3 tag:112]; ccsprite *topbackground = [ccsprite spritewithfile:@"top_bg.png"]; topbackground.position = ccp(winsize.width * 0.5,winsize.height * 0.94); [toplayer addchild:topbackground z:3 tag:113]; [[uiapplication sharedapplication] setstatusbarhidden:yes]; ccsprite *topbackground2 = [ccsprite spritewithfile:@"statuscover2.png"]; topbackground2.position = ccp(winsize.width * 0.5,winsize.height * 0.992); [toplayer addchild:topbackground2 z:3 tag:114]; [[toplayer popovercontroller] dismisspopoveranimated:yes];
then
[uiimage imagewithcgimage:uigetscreenimage()];
however later not taking overlays account. taking screenshot of layer before overlays added.
is there anyway can tell cocos2d scene/layer update frame now?
because cocos2d asynchronous can't tell that. however, can schedule callback happen in 2 seconds , have callback screen capture.
[self schedule: @selector(screenshot:) interval:2.0];
then define selector this:
-(void) screenshot:(id)sender { [uiimage imagewithcgimage:uigetscreenimage()]; [self unschedule:@selector(screenshot:)]; }
don't forgot unschedule it.
Comments
Post a Comment