私はターンベースのマルチプレイヤーゲームでアンドロイドクイズアプリを実装しました。奇妙な動作は、プレイヤー1が自動選択マッチを作成してプレイするときです。テストするデバイスが2つしかないので、このゲームはplayer2という他のプレイヤーに送信されることはありません。今、私は、player2に到達したことのない対戦相手がゲームを待っているのを見ることができます。今度は、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();
}
コードを見ずにこの質問に答えることは不可能です。 http://stackoverflow.com/help/mcve –
コードブロックを追加してご覧ください。見てください。 –