【问题标题】:Google play services non multiplayer invitation challenge message谷歌播放服务非多人邀请挑战消息
【发布时间】:2014-07-16 01:57:48
【问题描述】:

我正在 LibGDX 中开发一个益智游戏,一旦你完成了一个谜题,你就可以挑战朋友在同一个谜题中击败你的分数

这涉及向该朋友发送 4 个变量

intent.putExtra("PuzzleId", puzzle.puzzle_id.toString());
        intent.putExtra("ScoreCombined", score.combinedScore);
        intent.putExtra("ScoreHints", score.hintsUsed);
        intent.putExtra("ScoreDuration", score.puzzleCompletionTime);

我需要做的就是通过 google play 服务提示用户朋友已经挑战他们超过这个分数他们是否想尝试它,如果他们这样做会启动我的应用程序并加载那个谜题,甚至只提示用户当他们手动打开我的应用程序时?

谁能提出一个好的方法来完成这个?

深度链接是更好的方法吗?这可能只适用于 google+ 页面更新或其他东西,然后他们必须点击链接

我目前一直在尝试使用基于回合的多人游戏方法,该方法允许我弹出朋友选择屏幕选择朋友构建意图添加我的变量

Intent intent = Games.TurnBasedMultiplayer.getSelectOpponentsIntent(gameHelper.getApiClient(), 1, 7, true);

        intent.putExtra("PuzzleId", puzzle.puzzle_id.toString());
        intent.putExtra("ScoreCombined", score.combinedScore);
        intent.putExtra("ScoreHints", score.hintsUsed);
        intent.putExtra("ScoreDuration", score.puzzleCompletionTime);

        startActivityForResult(intent, SELECT_PLAYERS);

这样成功弹出好友选择界面我可以选择多人点击开始游戏 问题 1 是当 onActivityResult 被调用时,我的变量不再是意图 使用此代码

Bundle extras = data.getExtras();
                Set keys = extras.keySet();
                Iterator iterate = keys.iterator();
                System.out.println("Intent Extras are");
                while (iterate.hasNext()) 
                {
                    String key = iterate.next().toString();
                    System.out.println("Extra key="+key + " value=" + extras.get(key).toString());
                }

我的变量没有通过

问题 2 现在我正在深入创建房间并开始比赛,但我不需要任何这种复杂性,我只想发送包含这 4 个变量的邀请,然后工作结束,用户可以接受或不接受无需游戏

当试图真正开始这场比赛时,它会提示最初的发起者开始回合,这显然不起作用,我需要被挑战的朋友获得第一个回合,这样他们就可以终止多人游戏会话并检索我的四个变量

有没有更简单的方法来处理这个问题?使用游戏开始方法,我可以获得选定用户的用户 ID,如果需要,我可以单独保存变量,但我不知道是否有一种方法可以只向用户 ID 发送消息?如果这样做会达到相同的最终结果

【问题讨论】:

    标签: android libgdx google-play-services


    【解决方案1】:

    似乎没有简单的方法可以通过 google play 服务进行通信。 GCM 和 Turn 或 Normal 游戏服务是我能找到的唯一选项,而且它们非常重

    我已经通过在该意图之外存储数据来实现此功能,因为它没有传递数据

    然后创建一个 TurnBasedMatch 并在那里设置数据,然后立即将其设置到对方玩家的回合

    我可以在其他安卓设备上检测到这个游戏邀请,并通过将其嵌入为字节数组成功地从比赛中提取数据

    虽然我在完成游戏时还没有尝试过,但我会通过新回合将结果数据连同结果一起发送回发起者,然后显示它们并结束比赛

    我不确定这个答案是否会帮助除了说放弃所有希望 heh 之外的任何人

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-18
      • 2014-05-23
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      相关资源
      最近更新 更多