玩游戏 loadLeaderboardMetadata() 返回过期数据

Posted

技术标签:

【中文标题】玩游戏 loadLeaderboardMetadata() 返回过期数据【英文标题】:Play games loadLeaderboardMetadata() returns outdated data 【发布时间】:2014-02-08 14:45:30 【问题描述】:

我正在开发一个带有 Play 游戏服务的应用程序,并且我正在制作一个自定义 UI 来显示排行榜列表,其中只有玩家的分数和排名作为动态数据。

然后,当用户点击分数或排名时,他将被带到排行榜默认 UI 以详细显示此特定排行榜。

换句话说:我正在为排行榜列表制作自定义 UI,但我使用默认 UI 来显示特定排行榜。

我使用 loadLeaderboardMetadata() 方法来获取排行榜数据。问题是它返回过时的数据,即使我使用 loadLeaderboardMetadata(context, true) 强制重新加载数据。

此外,如果我单击过时的分数以显示具有默认 UI 的特定排行榜,则此处的数据是最新的! ...然后,如果我返回我的排行榜列表并强制重新加载数据,则此特定排行榜的数据将是最新的(但不是其他排行榜的数据)。

有什么想法和/或方法可以解决这个问题吗?

提前谢谢你,

史蒂芬。

【问题讨论】:

您最近有解决此问题的方法吗?我只使用loadCurrentPlayerLeaderboardScore,但如果用户刚刚提交了更好的结果,它会返回旧数据。 它是否在已发布的版本中“自我修复”?有时像这样的东西在沙盒模式下不能很好地工作...... 【参考方案1】:

我终于发现通过使用loadCurrentPlayerLeaderboardScore而不是loadLeaderboardMetadata方法,它似乎可以工作。

更新:除了如果你有 30 个排行榜,这个方法真的很慢,而且它会抛出错误,因为你对 API 进行了很多调用,所以它不是一个可行的选择。除非您的排行榜很少。

【讨论】:

除了这个方法对于30个排行榜真的很慢...在这里提交了一个错误报告:code.google.com/p/play-games-platform/issues/… 对我来说 loadCurrentPlayerLeaderboardScore 返回某个未知时间段的旧数据。我不确定它何时更新,如果有的话,在会话期间。如果我往返于本地 Google Play 排行榜并查看那里的分数,然后返回,分数就会更新。这是 android 上的正常行为吗? (好吧,我刚刚意识到这可能与您所描述的情况相同 - 它仅在提交新分数后用户至少打开一次用于显示排行榜的本机 UI 时才会更新。)

以上是关于玩游戏 loadLeaderboardMetadata() 返回过期数据的主要内容,如果未能解决你的问题,请参考以下文章

JS写小游戏:游戏框架

JS小游戏----猜拳小游戏

cocoscreator 搭建小游戏

从零到一:用Phaser.js写意地开发小游戏(Chapter 2 - 搭建游戏的骨架)

从零到一:用Phaser.js写意地开发小游戏(Chapter 2 - 搭建游戏的骨架)

JS小游戏