2014-09-25 39 views
3

我正在使用Google's TurnBasedMultiplayer API編寫多人遊戲,並調用takeTurn()。我在遊戲中有三名玩家,除了正在呼叫takeTurn的玩家之外,我發現有一名玩家接收到更新並且onTurnBasedMatchReceived()被正確調用,但另一名玩家沒有收到更新,未調用onTurnBasedMatchReceived()Android TurnBasedMultiplayer調用takeTurn()不會生成onTurnBasedMatchReceived()

有人可能會提供給我一個可能的原因並非所有玩家都收到更新嗎?我注意到沒有收到更新的玩家需要返回匹配收件箱並再次選擇相關的比賽,然後可以看到遊戲實際上已經更新。

+0

如果你已經正確配置['OnTurnBasedMatchUpdatedReceivedListener'(HTTPS: //developer.android.com/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html),當你調用'takeTurn()'時,應該更新遊戲中的所有玩家並且更新匹配狀態。你可以分享一些代碼,瞭解你如何註冊這些監聽器,以及你如何調用'takeTurn()'?這可能會對您的具體問題有所瞭解。 – 2014-10-02 18:17:04

+0

@Override public void onTurnBasedMatchReceived(TurnBasedMatch match){ \t Toast.makeText(this,「A match was updated。」,TOAST_DELAY).show(); \t \t updateMatch(match); } – 2014-10-07 22:53:36

+0

Games.TurnBasedMultiplayer.takeTurn(getApiClient(),mMatch.getMatchId(), mTurnData.persist(),nextParticipantId).setResultCallback( 新ResultCallback (){ @Override 公共無效onResult (TurnBasedMultiplayer.UpdateMatchResult result){process_Result(result); } }); – 2014-10-07 22:57:21

回答

0

是否在比賽中沒有完全收到更新的玩家?未接受邀請的玩家將不會收到致電onTurnBasedMatchUpdated的電話。

此外,當玩家收到邀請時,這將發送邀請偵聽器,而不是匹配更新的偵聽器。如果你想爲兩者使用匹配更新的偵聽器,那也可以解釋爲什麼你沒有得到更新。

+0

是的,玩家完全在比賽中。這不是一個邀請。感謝您的查詢,但。我懷疑這是三星正在使用的一個同步問題,但我無法找到在設備上設置自動同步的位置,因此我無法驗證此問題並回答自己的問題。 – 2014-10-28 21:09:26

0

您是否激活了偵聽器?我用這樣的代碼在我的主要活動......

公共類GameScreen擴展活動實現OnInvitationReceivedListener, OnTurnBasedMatchUpdateReceivedListener { ... }