iPhone Gamecenter подает самый высокий балл?
-
28-09-2019 - |
Вопрос
Я использую ниже функцию, чтобы отправить счет в игровой центр. Как изменить код ниже, чтобы я мог отправить счет только в том случае, если он самый высокий, чем уже отправленный счет? И я не хочу поддерживать баллы локально. Любая помощь?
- (void) reportScore: (int64_t) score forCategory: (NSString*) category
{
GKScore *scoreReporter = [[[GKScore alloc] initWithCategory:category] autorelease];
scoreReporter.value = score;
[scoreReporter reportScoreWithCompletionHandler: ^(NSError *error)
{
[self callDelegateOnMainThread: @selector(scoreReported:) withArg: NULL error: error];
}];
}
Спасибо.
Редактировать: Я только что обнаружил, что он обрабатывается только игровым центром ... только топ-балл будет отображаться в приложении Gamecenter.
Решение
Вы можете получить предыдущий счет, используя
GKLeaderboard *query = [[GKLeaderBoard alloc] initWithPlayerIDs:[NSArray arrayWithObject:yourPlayerId]];
if (query != nil)
{
[query loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
if (error != nil)
// handle the error.
if (scores != nil)
// process the score information.
}];
}
Получить больше информации на Руководство по программированию Apple Gamekit
Не связан с StackOverflow