我正在尝试将两位十进制长度的float
提交给Game Center排行榜,但是允许提交的唯一格式是int64_t
。我正在使用默认的Apple报告评分方法:
- (void)reportScore:(int64_t)score forCategory:(NSString *)category {
GKScore *scoreReporter = [[GKScore alloc] initWithCategory:category];
scoreReporter.value = score;
[scoreReporter reportScoreWithCompletionHandler: ^(NSError *error) {
[self callDelegateOnMainThread: @selector(scoreReported:) withArg: NULL error: error];
}];
}
我正在尝试使用此方法将分数提供给报告分数方法:
- (IBAction)increaseScore {
self.currentScore = self.currentScore + 1;
currentScoreLabel.text = [NSString stringWithFormat: @"%lld", self.currentScore];
NSLog(@"%lld", self.currentScore);
}
请帮助,我一直在疯狂搜索,无法找到答案。
最佳答案
您只能将64位整数作为分数提交到排行榜。从documentation:
在Game Center中,分数只是一个
您的报告的64位整数值
应用。您可以自由决定
分数意味着什么,以及您的
应用程序对其进行计算。当你
准备将排行榜添加到
您的应用程序,您配置
iTunes Connect上的排行榜告诉
游戏中心的分数应该是多少
格式化并显示给播放器。
此外,您提供本地化的字符串
这样就可以显示分数
正确地使用不同的语言。一种
配置的主要优势
iTunes Connect中的排行榜是
Game Center应用程序可以显示
您无需拥有游戏即可获得的分数
编写任何代码。
该文档页面应告诉您有关格式化乐谱的信息。听起来像是要显示类似浮动的乐谱,您必须修改iTunes Connect中的格式设置。
更新
尝试使用该方法来增加分数:
- (IBAction) increaseScore {
self.currentScore = self.currentScore + 5;
float score = (float)self.currentScore / 100.0f;
currentScoreLabel.text = [NSString stringWithFormat: @"%f", score];
NSLog(@"%lld", self.currentScore);
}
关于ios - iOS Game Center提交float而不是int64_t,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6632052/