从TurnBasedMatch获取ParticipantResult

时间:2014-12-28 07:01:51

标签: android multiplayer google-play-games

所以我有一个TurnBasedMatch游戏。假设有两个玩家,每个玩家都有一个回合。现在它的第二个玩家转向了。为了表明第二名球员赢了,我会做以下事情:

mywinstatusresult = ParticipantResult.MATCH_RESULT_WIN;
opponentwinstatusresult = ParticipantResult.MATCH_RESULT_LOSS;
myplacing = 1;
opponentplacing = 2;

ParticipantResult myresult = new ParticipantResult(myParticipantId,mywinstatusresult,myplacing );
ParticipantResult opponentresult = new ParticipantResult(getNextParticipantId(),opponentwinstatusresult, opponentplacing);
List<ParticipantResult> reportresult = new ArrayList<ParticipantResult>();
reportresult.add(myresult);
reportresult.add(opponentresult);
                    Games.TurnBasedMultiplayer.finishMatch(mGoogleApiClient, mMatch.getMatchId(),mTurnData.persist(), reportresult)
                    .setResultCallback(new ResultCallback<TurnBasedMultiplayer.UpdateMatchResult>() {
                        @Override
                        public void onResult(TurnBasedMultiplayer.UpdateMatchResult result) {
                            processResult(result);
                        }
                    });

这是一个示例代码!下一个球员;第一个已经完成并且现在获得比赛结果的玩家将检查他的参与者结果&#39;是。如果有办法的话,我只能在这方面遇到麻烦。所以我所做的是:

mMatch.getParticipant(myParticipantId).getResult().getResult()

(第一个getResult()获取ParticipantResult个对象,第二个获取结果int值。)

我希望这会返回此播放器的结果,即值ParticipantResult.MATCH_RESULT_LOSE。但是,我得到一个NullPointerException。 mMatch不为空,myParticipantId也不为空。

我在这里做错了什么?我的解决方法是获取匹配数据并再次计算获胜者,因为数据已保存分数,只有通过获取先前传递的ParticipantResult,我想要一种更清晰的方法。

有关如何实现这一目标或是否实际可以实现的任何想法?

0 个答案:

没有答案