如何在cocos2d-x中实现共享

时间:2015-08-06 11:11:27

标签: iphone facebook gmail cocos2d-x share

我是新的cocos2dx开发者。我使用的是cocos2dx版本2.2.6。现在我想在gmail和facebook上分享图片。我参考了许多网站和建议,但我还不清楚分享。

2 个答案:

答案 0 :(得分:0)

我们可以使用UIActivityViewController创建共享对话框,并使用一些CCRenderTexture代码来截取屏幕截图。点击共享按钮后,可以使用多种共享选项,具体取决于用户在手机上可用的应用程序。

您可以使用以下代码创建共享弹出窗口:

func openShareDialog() {
    var scene = CCDirector.sharedDirector().runningScene
    var node: AnyObject = scene.children[0]
    var screenshot = screenShotWithStartNode(node as! CCNode)

    let sharedText = "Text"
    let itemsToShare = [screenshot, sharedText]

    var excludedActivities = [ UIActivityTypeAssignToContact,
        UIActivityTypeAddToReadingList, UIActivityTypePostToTencentWeibo]

    var controller = UIActivityViewController(activityItems: itemsToShare, applicationActivities: nil)
    controller.excludedActivityTypes = excludedActivities

    UIApplication.sharedApplication().keyWindow?.rootViewController?.presentViewController(controller, animated: true, completion: nil)
}

然后我们可以使用CCRenderTexture

截取屏幕截图
func takeScreenshotWithNode(node: CCNode) -> UIImage {
    CCDirector.sharedDirector().nextDeltaTimeZero = true
    var viewSize = CCDirector.sharedDirector().viewSize()
    var rtx = CCRenderTexture(width: Int32(viewSize.width), height: Int32(viewSize.height))
    rtx.begin()
    node.visit()
    rtx.end()
    return rtx.getUIImage()
}

以下是弹出窗口显示时实际外观的示例:

Example UIActivityViewController

您可以在Apple's docs.

中找到有关UIActivityViewController的更多信息

答案 1 :(得分:0)

通过阅读文档here,您可能会发现它很方便。

cocos2d-x.org网站还有其他detailed instructions,其中包括iOS的内容。