2

我正在尝试让 Game Center 正常工作,它几乎就在那里。唯一的问题是发布的分数没有任何意义。这是我的分数代码:

-(IBAction)subScore
{
    {
        GKScore *scoreReporter = [[[GKScore alloc] initWithCategory:@"katplay"] autorelease];

        scoreReporter.value = gcPost;
        NSLog(@"posted");
        NSLog(gcPost);

        [scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
            if (error != nil)
            {
                NSLog(@"failed!!!");
                NSLog(gcPost);
            }
        }];
    }
}

所以我玩游戏并获取我的分数并查看控制台,其中日志显示 gcPost = 2500。当我查看排行榜时,我的分数是 100,929,392 分。我不知道这个数字是从哪里来的。

我只是缺少一些基本的东西吗?

克里斯

4

3 回答 3

2

您提到 gcPost 是“int *gcPost”。当然这应该只是“int gcPost”?您需要实际的整数而不是指针。

于 2011-01-27T19:58:02.710 回答
2

刚刚在我的应用程序中实现了游戏中心。您需要将整数转换为int64_t. 在 Objective-C 术语中,这是一个LongLong. 你可以改变这个:

scoreReporter.value = gcPost;

对此:

scoreReporter.value = [[NSNumber numberWithInt:gcPost] longLongValue];

我强烈建议您阅读Game Center 上的 Apple 文档。这是一个快速和容易阅读。您也可以从那里复制大部分代码。

于 2011-01-27T20:03:19.960 回答
0

gcPost 是什么类型的?GKScore.value 属性需要一个 int64_t 类型的值。我的猜测是 gcPost 的任何类型都不能很好地配合它。尝试从原始类型显式转换为 int64_t。

于 2011-01-26T00:33:33.210 回答