私はこのターン制のゲームを持っていますが、私のゲーム センターは機能しています。リーダー ボードはポイントの送信のみが機能しており、本来の方向に進んでいません。私のゲームではUILabel
、スコアを表示する必要があり、ゲームをプレイするたびに以前のハイスコアであるスコアが取得されるため、それをさらに高くすることができます。次のコードを使用します。
if([GKLocalPlayer localPlayer].authenticated)
{
NSArray *arr = [[NSArray alloc] initWithObjects:[GKLocalPlayer localPlayer].playerID, nil];
GKLeaderboard *board = [[GKLeaderboard alloc] initWithPlayerIDs:arr];
if(board != nil)
{
board.timeScope = GKLeaderboardTimeScopeAllTime;
board.range = NSMakeRange(1, 1);
board.category = @"750";
[board loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
if (error != nil)
{
// handle the error.
NSLog(@"Error retrieving score.", nil);
}
if (scores != nil)
{
NSString *scrVal = [NSString stringWithFormat: @"%i", ((GKScore*)[scores objectAtIndex:0]).value + 1];
//score += 2500;
//NSString *scrVal = [NSString stringWithFormat:@"%d",score];
lblScore.text = scrVal;
GKScore *myScoreValue = [[[GKScore alloc] initWithCategory:@"750"] autorelease];
myScoreValue.value = scrVal;
[myScoreValue reportScoreWithCompletionHandler:^(NSError *error) {
if(error != nil)
{
NSLog(@"Score Submission Failed");
}
else {
NSLog(@"Score Submitted");
}
}];
}
}];
}
[board release];
[arr release];
}
試してみたところ、スコアは送信されますが、正しいスコアは送信されません。コードでわかるように、スコアを1ポイント高くしたいのです。以前のスコアは 2120 で、それが表示されましたが、正しい単語を入力してこのコードを実行すると、新しいリーダー ボードのスコアが 287,343,904 になりました。
誰かが私が間違っていることを説明してくれることを願っていますか?