提问者:小点点

在IOS上使用cocos2d-x将截图分享到facebook/twitter


我正在将我的游戏从cocos2d (obj-c)移植到cocos2d-x 2.x (c ),但我真的很难让社交功能正常工作。有没有可能以任何方式使用下面的代码,它在本机objective-c和cocos2d中完美地工作。

拍摄屏幕截图

- (UIImage*) takeScreenShot
{
    [CCDirector sharedDirector].nextDeltaTimeZero = YES;
    CGSize winSize = [CCDirector sharedDirector].winSize;

    CCLayerColor* blankLayer = [CCLayerColor layerWithColor:ccc4(255, 255, 255, 0) width:winSize.width height:winSize.height];

    blankLayer.position = ccp(winSize.width/2, winSize.height/2);

    CCRenderTexture* rtx = [CCRenderTexture renderTextureWithWidth:winSize.width height:winSize.height];

    [rtx begin];
    [blankLayer visit];
    //[[[CCDirector sharedDirector] runningScene] visit];
        [layer_main visit];
        [rtx end];

        return [rtx getUIImage];
    }

在脸书上发帖

    - (void)share_score_facebook: (id) sender{
    if (SYSTEM_VERSION_LESS_THAN(@"6.0")){
        [AppVariables showAlert:@"Outdated iOS" message:@"You must have atleast iOS 6.0 to use the social features.\nPlease update to a newer iOS."];
        return;
    }

    [[CCDirector sharedDirector] pause];
    [[CCDirector sharedDirector] stopAnimation];

    AppController *app = (AppController*) [[UIApplication sharedApplication] delegate];

    UIImage * screenshot = [self takeScreenShot];

    SLComposeViewController *faceBookPost = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

    [faceBookPost setInitialText:[NSString stringWithFormat:@"Game on! Just scored %d on Game. Can you Beat it?",total_score]];
    [faceBookPost addImage:screenshot];
    [faceBookPost addURL:[NSURL URLWithString:@"URL_HERE"]];

    [[app navController] presentViewController:faceBookPost animated:YES completion:nil];
    faceBookPost.completionHandler = ^(SLComposeViewControllerResult result)
    {
        [[CCDirector sharedDirector] resume];
        [[CCDirector sharedDirector] startAnimation];
        [[app navController] dismissViewControllerAnimated:YES completion:nil];

    };
}

共1个答案

匿名用户

您可以用cocos2d-x编译任何Objective-C代码,但是您需要修改您的代码以适应cocos2d-x API。你想截图然后发到脸书,对吧?用下面的代码代替你的Objective-C代码怎么样?

  • Cocos2d-x v3.2-alpha0发布!-添加了工具::ca图片屏幕采取截图
    • v3.2-alpha0ccUtils.cpp似乎可以在早期版本的cocos2d-x上运行