2

今はカジュアルゲームを作っています。
ツイッターでスコアを共有したいと思います。
私のこの作品のイメージは以下です。

1.ゲームプレイヤーがゲームをプレイした後、スコアがあります。
2.gameoversceneになったらtwitterボタンを押す(social.framework使用)
3.「You got xx score!!」のようなテキスト twitterdisplay(モーダル)で。
※xxを共有スコアに変更したいです。

そのためのアドバイスをください。私はObjective-Cの初心者です。だから、簡単な方法が私にとっては良いです。少しずつですが、セキュリティとスケーラビリティに気を配っていきたいと思います。

【ご案内】 ※MainScene、GameOverSceneはSKSceneから作成

MainScene.m

@implementation MainScene {

//The score
NSInteger _score;

}

- (void)incrementScore
{
_score++;
}

GameOverScene.m

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{

 if([node.name isEqualToString:@"twitterbutton"]){
    NSLog(@"self.delegate = %@",self.delegate);
    [self.delegate showShareScreen];

    //delegate to ViewController
    if (nil == self.delegate) NSLog(@"delegate is nil");
    }    
}

ViewController.m

-(void)showShareScreen
{
NSLog(@"showShareScreen");
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
{
    SLComposeViewController *tweetSheet = [SLComposeViewController

composeViewControllerForServiceType:SLServiceTypeTwitter];

    tweetSheet.modalPresentationStyle = UIModalPresentationFormSheet;
    tweetSheet.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

    [tweetSheet setInitialText:@"You got xx score"];
     NSLog(@"self = %@",self);
    [self presentViewController:tweetSheet animated:YES completion:nil];

 }
 else {
     NSLog(@"not sls type twitter");
 }
 }
4

1 に答える 1

1

ViewController のデリゲート メソッドの行を変更します

[tweetSheet setInitialText:@"You got xx score"];

以下に示すように; NSString のstringWithFormat: メソッドでスコアを含める

-(void)showShareScreenWithScore:(NSInteger) score {
NSLog(@"showShareScreen");
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
{
    SLComposeViewController *tweetSheet = [SLComposeViewController

composeViewControllerForServiceType:SLServiceTypeTwitter];

    tweetSheet.modalPresentationStyle = UIModalPresentationFormSheet;
    tweetSheet.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

    [tweetSheet setInitialText:[NSString stringWithFormat:@"You got %d score",score]];
     NSLog(@"self = %@",self);
    [self presentViewController:tweetSheet animated:YES completion:nil];

 }
 else {
     NSLog(@"not sls type twitter");
 }
}

そして、GameOverScene からこのデリゲート メソッドを呼び出します。注: オブジェクトのインスタンス化後、その時点でゲーム オーバー シーンを作成している場合は、GameOverScene のプロパティを設定できます。したがって、プロパティを宣言するだけです

@property (assign , nonatomic) NSInteger score;

ゲームが乗り越えているNSURLSession を使用してその値を設定します。また、MainScene スコア プロパティから取得できるスコア値。


NSURLセッション

NSURLSession クラスと関連するクラスは、HTTP 経由でコンテンツをダウンロードするための API を提供します。この API は、認証をサポートするためのデリゲート メソッドの豊富なセットを提供し、アプリが実行されていないとき、または iOS でアプリが中断されているときに、アプリがバックグラウンド ダウンロードを実行できるようにします。

于 2014-03-29T07:34:09.037 に答える