我正在努力让游戏中心工作,而且几乎就在那里。唯一的问题是发布的分数没有任何意义。这是我的帖子得分代码:
-(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分。我不知道这个数字可能来自哪里。
我只是遗漏了一些基本的东西吗?
克里斯
答案 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进行显式转换。