2012-10-26 63 views
4

我有一個應用程序,有5種不同的遊戲模式,其中3個有整數分數,其中2個有基於時間的分數(他們完成遊戲的速度有多快)。GameKit發送不同的得分類型

如何設置我的reportScore:方法,使我的排行榜是在iTunes Connect(其顯示在一個最低的高分最高時間格式第二的)我設置能收到我的用戶評分時間格式?

我想把它作爲NSTimeInterval發送。

,蘋果文件規定的方法只接受一個整數作爲評分:

- (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 
     } 
    }]; 
} 

UPDATE

我已經做了一些研究,這一點,我知道,你只能發送分數Game Center排行榜作爲int64_t。那麼如何格式化這個整數,以便我的排行榜將它的格式化爲一秒到百分之一秒?

感謝您的幫助!

回答

5

Apple's documentation

由比分對象提供的值是由遊戲中心解釋格式化用於顯示僅當。您可以確定在iTunes Connect上定義排行榜時如何格式化您的分數。

即,您需要將時間轉換爲整數併發送。如果你想要1/100的精度,你可以將浮點數NSTimeInterval乘以100,然後將其乘以100(例如,1.567s - > 157),然後發送它並選擇相應的排行榜格式(「Elapsed Time - To the hundredth一秒鐘「,如果我沒記錯的話)。

+0

因此,如果我已經將排行榜設置爲經過時間達到百分之一秒,那麼當我發送100時,它會將其解釋爲1.00秒? – David

+0

@大衛是的,這個值是整數百分之一秒。 – Arkku