GameKit发送不同的分数类型

Dav*_*vid 4 objective-c gamekit ios game-center

我有一个有5种不同游戏模式的应用程序,其中3个有整数分数,其中2个有基于时间的分数(他们完成游戏的速度有多快).

如何设置我的reportScore:方法,以便我在iTunes Connect中设置的排行榜(以最低到最高时间格式显示高分数到百分之一秒)将以时间格式收到用户的分数?

我想把它作为一个发送NSTimeInterval.

Apple Docs指定的方法仅接受整数作为分数:

- (void) reportScore: (int64_t) score forCategory: (NSString*) category
{
    GKScore *scoreReporter = [[GKScore alloc] initWithCategory:category];
    scoreReporter.value = score;

    [scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
        if (error != nil)
        {
            //handle the score to submit again later
        }
    }];
}
Run Code Online (Sandbox Code Playgroud)

UPDATE

我已经做了这方面的一些研究,我知道,你只能发送分数游戏中心排行榜作为int64_t.那么,如何格式化这个整数,使我的排行榜将其格式化为一个时间到百分之一秒?

谢谢你的帮助!

Ark*_*kku 5

来自Apple的文档:

仅当格式化显示时,由游戏中心解释由得分对象提供的值.您可以确定在iTunes Connect上定义排行榜时如何格式化分数.

即,您需要将时间转换为整数并发送.如果你想要1/100s精度,你可以将浮点乘以NSTimeInterval100并将其舍入为整数(例如,1.567s - > 157),然后发送并相应地选择排行榜格式("经过时间 - 到百分之一"第二个",如果我没记错的话".