是否可以在精灵套装游戏中拥有Twitter/Facebook分享按钮?

She*_*tah 2 twitter facebook objective-c ios sprite-kit

我完全迷失了,我发现的所有教程都是针对带有Storyboard的iOS 6应用程序.我的问题是你是否可以在sprite-kit游戏中拥有推特或Facebook共享功能?如果是这样,添加它的最佳方法是什么?我读过的很多教程都使用了viewcontrollers,但sprite-kit使用了场景,所以我有点困惑.

谢谢.

MSU*_*dog 11

这是twitter的答案.别客气!

1)在Build Phases选项卡下导入Social框架,然后在Link Binary和Libraries中导入.将此代码放在您要共享的SKScene顶部.

#import <Social/Social.h>   
Run Code Online (Sandbox Code Playgroud)

2)-(id)initWithSize:(CGSize)size使用以下代码在方法中添加您的推文按钮:

SKSpriteNode *tweetButton = [SKSpriteNode spriteNodeWithImageNamed:@"share"];
tweetButton.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)-150);
tweetButton.name = @"tweet";
[self addChild:tweetButton];
Run Code Online (Sandbox Code Playgroud)

3)在你的touchesBegan:方法中放入以下代码来处理点击推文按钮并撰写推文

if ([node.name isEqualToString:@"tweet"]) {
    //  Create an instance of the Tweet Sheet
    SLComposeViewController *tweetSheet = [SLComposeViewController
                                           composeViewControllerForServiceType:
                                           SLServiceTypeTwitter];

    // Sets the completion handler.  Note that we don't know which thread the
    // block will be called on, so we need to ensure that any required UI
    // updates occur on the main queue
    tweetSheet.completionHandler = ^(SLComposeViewControllerResult result) {
        switch(result) {
                //  This means the user cancelled without sending the Tweet
            case SLComposeViewControllerResultCancelled:
                break;
                //  This means the user hit 'Send'
            case SLComposeViewControllerResultDone:
                break;
        }
    };

    //  Set the initial body of the Tweet
    [tweetSheet setInitialText:@"This is my tweet text!"];

    //  Adds an image to the Tweet.  Image named image.png
    if (![tweetSheet addImage:[UIImage imageNamed:@"image.png"]]) {
        NSLog(@"Error: Unable to add image");
    }

    //  Add an URL to the Tweet.  You can add multiple URLs.
    if (![tweetSheet addURL:[NSURL URLWithString:@"http://twitter.com/"]]){
        NSLog(@"Error: Unable to URL");
    }
    UIViewController *controller = self.view.window.rootViewController;
    [controller presentViewController:tweetSheet animated: YES completion:nil]; 
}
Run Code Online (Sandbox Code Playgroud)