游戏中心发布虚假分数 - iPhone

时间:2011-01-26 00:27:00

标签: iphone xcode 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分。我不知道这个数字可能来自哪里。

我只是遗漏了一些基本的东西吗?

克里斯

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

刚在我的应用中实施了Game Center。您需要将整数转换为int64_t。在Objective-C术语中,那是LongLong。你可以改变这个:

scoreReporter.value = gcPost;

到此:

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

我强烈建议您阅读Apple Documentation on Game Center。这是一个快速简便的阅读。你也可以复制大部分代码。

答案 2 :(得分:0)

gcPost是什么类型的? GKScore.value属性需要int64_t类型的值。我的猜测是gcPost不能与之完美搭配。尝试从原始类型到int64_t进行显式转换。