Таблица лидеров Game Center показывает неверный счет

Так что у меня есть несколько проблем, и я пытаюсь решить их около двух дней.

Я настроил 2 учетные записи "песочницы" и попробовал приложение на симуляторе и на своем устройстве.

Игровой центр аутентифицирует аккаунт / регистрирует вас в системе.

Но за один раз отображается только один счет, и я не уверен, почему. Во-вторых. Вместо того, чтобы показывать счет в виде 1 балла, 2 балла и т. Д., Число просто неверно. например.

Там, где предполагается, что счет равен трем, написано "392 868 960" или даже больше!

Кто-нибудь знает, почему на земле это может быть и как я могу решить это. Кроме того, в xcode, когда я тестирую игру на моем приложении, внизу нет обратной связи. например, заявления NSLOG!

Любая помощь приветствуется. Код, который я использую, как показано ниже. Заранее большое спасибо.

-(void)authentication //log player into game centre
{
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];

localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error){
    if (viewController != nil) {
        [self presentViewController:viewController animated:YES completion:nil];
    }
    else{
        if ([GKLocalPlayer localPlayer].authenticated) {
            NSLog(@"authentication successful");
            GameCenterAvailable = YES;
            [[GKLocalPlayer localPlayer] loadDefaultLeaderboardIdentifierWithCompletionHandler:^(NSString *leaderboardIdentifier, NSError *error) {

                if (error != nil) {
                    NSLog(@"%@", [error localizedDescription]);
                }
                else{
                    leaderboardIdentifier = leaderboardIdentifier;
                }
            }];
        }

        else{
            NSLog(@"authentication unsuccessful");
            GameCenterAvailable = NO;
        }


       }
    };
}

-(void)submitScore{

    if (ScoreNumber > HighScoreNumber) {

    GKScore *scoreReporter = [[[GKScore alloc] initWithCategory:@"Dodge_Leaderboard"] autorelease];

    scoreReporter.value = [[NSNumber numberWithInt:ScoreNumber] longLongValue];
    NSLog(@"posted");
    NSLog(@"%i",ScoreNumber);

    [scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
        if (error != nil)
        {
            NSLog(@"failed!");
            NSLog(@"%i",ScoreNumber);
        }
        else{
            NSLog(@"Succeeded");

        }
    }];}}

-(IBAction)ShowGameCenter:(id)sender //show game center
{
    GKLeaderboardViewController *LeaderboardController = [[GKLeaderboardViewController alloc] init];
    if (LeaderboardController != nil) {
        LeaderboardController.leaderboardDelegate = self;
        [self presentViewController:LeaderboardController animated:YES completion:nil];
    }
}

//Animate gc out if finished with it

-(void)leaderboardViewControllerDidFinish: (GKLeaderboardViewController *) viewController{
    [self dismissViewControllerAnimated:YES completion:nil];
}

НОВЫЙ КОД ДЛЯ ОТПРАВКИ СЧЕТА:

- (void) reportScore {if ([GKLocalPlayer localPlayer].isAuthenticated) {GKScore * scoreReporter = [[GKScore alloc] initWithLeaderboardIdentifier: @ "Dodge_Leaderboard" forPlayer: [GKLocalPlayer localPlayer].playerID]; ScoreReporter.value = ScoreNumber; NSLog(@"Значение репортера Score: %@", scoreReporter); [GKScore reportScores:@[scoreReporter] withCompletionHandler:^(NSError *error) { if (error!= Nil) { NSLog(@"Error"); // обработать ошибку отчета}

    }];
}}

0 ответов

Другие вопросы по тегам