2014-02-17 40 views
0

我正在爲我的應用程序創建一個非常簡單的聊天功能。谷歌播放服務簡單聊天實施?

我只想在我的回合制多人對戰中發送消息給對手。

我不想使用像Scringo這樣的庫和你有什麼。有什麼辦法可以實現這個嗎?

我試過使用Games.RealtimeMultiplayer.sendReliableMessage()但我的球員不在一個房間裏,所以它不起作用。

回答

1

在通過API看,似乎送出去數據的唯一方法是調用takeTurn

轉一轉,用這個方法:

方法說明 takeTurn()

你的遊戲只有在用戶輪到主動回合制比賽時才應該調用此方法。調用此方法後,用戶在匹配列表UI中的「輪到」列表下看到該匹配項。 如果在方法調用中指定了參與者ID,則該參與者將成爲當前玩家並可以回合。第一次發生這種情況時,玩家會收到邀請通知。隨後,玩家收到轉彎通知。 如果未指定未決的參與者標識,則匹配狀態將更改爲MATCH_STATUS_AUTO_MATCHING。如果玩家插槽仍然空置以進行自動匹配,則您的遊戲只能保留參與者ID未指定。 您的遊戲可以將當前玩家的takeTurn()作爲待決參與者。在這種情況下,Play遊戲服務會上傳遊戲數據,但不會發送通知。

沒有其他調用會更改服務器中保存並傳遞給其他玩家的數據。

現在,有了這個說法,就有可能爲目前擁有轉牌的球員發出聊天。看起來有兩種方法可以做到這一點,包括聊天並將待處理參與者設置爲下一位參與者......或者僅更新聊天部分,然後調用takeTurn,將待處理參與者設置爲當前活動的參與者。查看文檔,這將更新Google服務器上保存的數據,但是不一定會發出任何已更新的通知,因爲看來只有在通知播放器它是輪到他們了。 (如果你設想你的應用程序在Player等待其他人完成時打開,那麼它可以使用getData()來輪詢數據,因爲沒有要求我可以看到它是一個玩家輪到請求數據()。

這將允許玩家聊天,但不喜歡你提...作爲API嚴格回合制的實時。

+0

你說的是回合制多人遊戲API。他是專門引用實時多人遊戲,它有一個名爲sendReliableMessage的方法。不應該使用基於回合的遊戲數據,而是實時的聊天遊戲? – mbarrows