2

私はそれをグーグルで試しましたが、合法に見えるものを見つけることができません. ゲームセンターをすべてセットアップして、リーダーボードと実績を取得するだけで済みます。どんな提案でもいいでしょう。ありがとうございました。また、スコアを文字列に保存しているので、どうすればそれをリーダーボードに入れることができますか?

4

2 に答える 2

1

Itterheim & Loew の著書「Learn Cocos2d Game Development with iOS5」には、サンプル コードを含むゲーム センター プログラミングに関する章全体があります。また、Strougo & Wenderlich による「Learning Cocos2d」には、動作するコードの章があります。

于 2012-07-21T00:42:21.137 に答える
1

リーダー ボード デリゲートをレイヤー クラスに追加します。

@interface MyMainMenu : CCLayer<GKLeaderboardViewControllerDelegate>

必要に応じてリーダーボードを表示します。

-(void)displayLeaderboard
{
    GKLeaderboardViewController *leaderboardViewController = [[GKLeaderboardViewController alloc] init];
    leaderboardViewController.leaderboardDelegate = self;

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

    [app.navController presentModalViewController:leaderboardViewController animated:YES];
}

これらの 2 つのリーダー ボード デリゲート関数を追加します。

#pragma mark GameKit delegate

-(void) achievementViewControllerDidFinish:(GKAchievementViewController *)viewController
{
    AppController *app = (AppController*) [[UIApplication sharedApplication] delegate];
    [app.navController dismissModalViewControllerAnimated:YES];
}

-(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController
{
    AppController *app = (AppController*) [[UIApplication sharedApplication] delegate];
    [app.navController dismissModalViewControllerAnimated:YES];
}

スコアを送信するには:

[[GameCenterManager sharedGameCenterObject] reportScore:score forCategory: kLeaderboardID];

GKTapper サンプルの GameCenterManager.m クラスを使用します (Apple SDK サンプルを参照してください)。

設定から値を取得するコードは次のとおりです。 // 設定から保存された値を取得するには

int highScore = [[[NSUserDefaults standardUserDefaults] objectForKey:@"HighScore"] intValue ];
于 2012-07-20T07:52:16.613 に答える