【发布时间】:2017-02-23 15:00:02
【问题描述】:
我已经实现了带有回合制多人游戏的安卓测验应用程序。奇怪的行为是当玩家 1 创建一个自动选择比赛并开始比赛时,这个游戏永远不会发送给其他玩家,即玩家 2,因为我只有 2 台设备进行测试。现在我可以看到游戏正在等待玩家 2 永远无法到达的对手。现在我从 player2 发送了一个自动选择比赛,这个比赛通过替换 player1 发送的比赛被发送给 player1,轮到我在 player1 上,他可以正常玩。如何解决这个问题?
@Override
public void onActivityResult(int request, int response, Intent data) {
super.onActivityResult(request, response, data);
dismissSpinner();
if (request == RC_LOOK_AT_MATCHES) {
// Returning from the 'Select Match' dialog
if (response != Activity.RESULT_OK) {
// user canceled
return;
}
TurnBasedMatch match = data
.getParcelableExtra(Multiplayer.EXTRA_TURN_BASED_MATCH);
if (match != null) {
//update match here
updateMatch(match); //Pls ignore this nothing happen here, still under development
} else {
// Toast.makeText(getApplicationContext(), "finish", Toast.LENGTH_LONG).show();
}
} else if (request == RC_SELECT_PLAYERS) {
// Returned from 'Select players to Invite' dialog
if (response != Activity.RESULT_OK) {
// user canceled
}
else{
startNewMatchWithIntent(data);
}
}
}
private void startNewMatchWithIntent(Intent intent)
{
// Log.d("activityResult", "ResultOK");
// get the invitee list
final ArrayList<String> invitees = intent
.getStringArrayListExtra(Games.EXTRA_PLAYER_IDS);
// get automatch criteria
Bundle autoMatchCriteria = null;
int minAutoMatchPlayers = intent.getIntExtra(
Multiplayer.EXTRA_MIN_AUTOMATCH_PLAYERS, 0);
int maxAutoMatchPlayers = intent.getIntExtra(
Multiplayer.EXTRA_MAX_AUTOMATCH_PLAYERS, 0);
if (minAutoMatchPlayers > 0) {
autoMatchCriteria = RoomConfig.createAutoMatchCriteria(
minAutoMatchPlayers, maxAutoMatchPlayers, 0);
} else {
autoMatchCriteria = null;
}
TurnBasedMatchConfig tbmc = TurnBasedMatchConfig.builder()
.addInvitedPlayers(invitees)
.setAutoMatchCriteria(autoMatchCriteria).build();
// Start the match
Games.TurnBasedMultiplayer.createMatch(mGoogleApiClient, tbmc).setResultCallback(
new ResultCallback<TurnBasedMultiplayer.InitiateMatchResult>() {
@Override
public void onResult(@NonNull TurnBasedMultiplayer.InitiateMatchResult result) {
dismissSpinner();
processResult(result);
Log.d(TAG, "create match :" + String.valueOf(result.getMatch().getDescriptionParticipant()));
}
});
showSpinner();
}
【问题讨论】:
-
不看代码就无法回答这个问题。请看stackoverflow.com/help/mcve
-
添加了代码块。请看一看。
标签: android-studio google-play-games multiplayer