【发布时间】: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