簡體   English   中英

GameCenter高分不包括最近設定的分數

[英]GameCenter high scores doesn't include recently set score

游戲結束后,將reportables分數( reportables對象是GKScore對象的數組):

GKScore.reportScores(reportables, withCompletionHandler: {(error) -> Void in
  if (error != nil) {
    Log.INFO("reportScores callback: \(error)")
  } else {
    Log.INFO("reported score")
    self.populate_high_scores(leaderboard)
  }
})

populate_high_scores設置對GKLeaderboard請求,然后發出調用以檢索高分:

request.loadScoresWithCompletionHandler({(scores, error) -> Void in
  self.populate_high_scores_handler(scores, error: error)
})

所以要刷新:

  1. 用戶玩游戲。
  2. 高分報告給GameCenter。
  3. <等待>
  4. 收到回叫指示成功。
  5. 向GameCenter請求高分。
  6. <等待>
  7. 在GameCenter中獲得高分。

從GameCenter返回的分數不包括剛剛保存的分數。 請注意, 在下一次運行中,將返回分數。 例如,當前的最高分是50。用戶玩游戲時獲得100分。GameCenter返回50分。 用戶再次玩游戲,獲得150分。GameCenter返回100分。

我不確定這是否是GameCenter沙盒模式的“功能”,還是我應該解決的問題。

實際上,我是從GameCenter檢索分數的正確子集(減去最近設置的分數)。 此外,肯定會 GameCenter從reportScores成功返回發出高分請求。

眾所周知,游戲中心在更新數據時遇到問題,而在沙箱中,開發人員在服務器上的優先級最低。

嘗試在非高峰時間測試您的代碼(早上和半夜最適合我)

您可以做的另一件事是提交分數並不斷檢查排行榜,直到更新為止,然后再次提交以確保一切正常。

最近我同時提交給3個排行榜時遇到了這個問題,在我進行測試時,只有其中一些會更新,但是相同的代碼現在已經存在於現實世界中,並且可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM