【问题标题】:Android, sending Leaderboards score after Turnbased match is finishedAndroid,回合制比赛结束后发送排行榜得分
【发布时间】:2015-04-29 08:08:26
【问题描述】:

我需要在比赛结束时发送双方球员的比分,因为我需要知道谁是获胜者来计算比分。

在这种情况下,只有最后一回合的玩家知道。 他可以提交自己的分数,但不能提交对手的分数。那么,如何提交对手的分数呢?

【问题讨论】:

    标签: android google-play google-play-games


    【解决方案1】:

    您不能为其他玩家提交分数。您可以在游戏状态下写出分数,当游戏结束并调用 finishGame() 时,失败者将收到包含游戏状态和 MATCH_STATUS_COMPLETE 状态的通知。然后就可以为本地用户提交分数了。

    【讨论】:

    • 是的,但是如果游戏关闭我就不能注册监听器了,对吧?
    • 状态为 match_status_complete 的最后一条消息结束了游戏的生命周期 - 因此您可以在结束游戏时显示“获胜动作”。
    • 所以我必须打开应用程序,查询已完成的比赛并推送分数?
    • 是的,但是有一个包含比赛信息的通知。它确实需要玩家做一些事情(我认为这是你的观点,为什么这不是一个完美的解决方案)。或者,根据您的游戏逻辑,每回合提交分数?
    • 好的,我会尝试,但我找不到可以访问通知数据的位置。关于回合制的文档非常不清楚。感谢您的耐心等待
    【解决方案2】:

    之所以重新访问,是因为我最近为我的一个测验应用程序实现了此功能。

    没有多人游戏框架允许我们发布对手的分数。更新的最佳方式是按照以下步骤操作。

    1. 我们需要在本地存储 mywinsCount 和 matchID 以更新获胜次数,以避免将来多次更新。
    2. 加载所有已完成的比赛。
    3. 迭代并检查匹配回合状态MATCH_TURN_STATUS_COMPLETE。
    4. 检查matchID是否已用于更新您的排行榜;如果是,请忽略并转到下一个。
    5. 根据您的比赛数据决定获胜者并更新排行榜。
    6. 使用matchID 并将其标记为本地更新,并在以后的更新中忽略此匹配项。

    如果本地玩家获胜,立即更新排行榜。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-17
      • 2015-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多