是否可以通過Game Center向其他玩家發送文字聊天信息?他們有沒有專門的方法來用GameKit API做到這一點?還是隻需要將其放入玩家之間發送的轉換數據?用Game Center發送文字聊天信息給其他玩家?
1
A
回答
2
1
您可以在遊戲過程中以普通數據的形式發送文本。爲了做到這一點
方法準備要發送的數據
-(void)sendText:(NSString *) text {
NSString * text2Send = [NSString stringWithFormat:@"%@", text];
[self sendData:[text2Send dataUsingEncoding:NSUTF8StringEncoding]];
}
的發送數據的方法將是正常的數據發送遊戲中心的方法
- (BOOL)sendDataToAllPlayers:(NSData *)data withDataMode:(GKMatchSendDataMode)mode error:(NSError **)error;
,爲了解決收到的數據
NSString * rawText = [[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding:NSUTF8StringEncoding];
if(rawText.length > 0)
{
//Do what ever you want with the text
}
0
就像已經提出的,你可以使用GKTurnBasedMatch
的matchData
。如果您的遊戲是基於回合的,則可以有兩種遊戲數據消息類型:一種用於在每位玩家輪到末端發送遊戲數據,另一種用於發送聊天消息。或者您可以將它們組合起來,以便在每位玩家輪到她時發送消息。但是,如果您只使用matchData
發送聊天消息,請確保它不會結束玩家的遊戲,否則您將遇到遊戲同步問題。用於發送消息的方法saveCurrentTurnWithMatchData:completionHandler:
;另一方面,GameKit會在你接收到消息時調用你的回調 - 你應該閱讀更新的matchData
,看看它是一個消息還是遊戲狀態更新 - 如果你使用JSON或XML或NSDictionary序列化來發送數據,這是相對容易的來回 - 你可以在那裏引入dataType
屬性,這會讓你區分短信和遊戲狀態更新。
還有一個選項可以改變match.message
的內容,但是如果你在那裏輸入你的短消息,那麼只有當他們收到來自GameCenter的'輪到'通知時,對手纔會看到它。
相關問題
- 1. 將上下文信息發送給聊天機器人
- 2. 發送消息給玩家的問題
- 3. iOS開發:如何自動匹配Game Center中的玩家?
- 4. 通過JavaScript發送Facebook聊天信息
- 5. 如何將聊天機器人的聊天信息發送給客戶?
- 6. 當用戶正在打字(聊天)時發送信息?
- 7. 發送推送通知給發佈聊天組中的其他用戶quickblox
- 8. 使用Unity Photon將玩家位置發送給其他玩家以在多人遊戲中移動他
- 9. 發送聊天消息
- 10. iOS Game Center - 加載玩家的公開賽
- 11. 如何發送文件給其他人在小nodejs聊天應用程序
- 12. 檢索文字/聊天信息?
- 13. 發送消息給其他用戶
- 14. YouTube發送實時聊天信息不起作用
- 15. 阻止玩家發送垃圾信息導致故障
- 16. Struts2向其他動作發送信息
- 17. Laravel聊天消息。保存圖像發送聊天?
- 18. 如何發送消息給玩家朋友的時間軸
- 19. GameKit:向其他玩家發送可靠的NSData?
- 20. 發送信息給其它工藝
- 21. 發送消息給其他QThread
- 22. 暫停其他玩家玩一個
- 23. Facebook XMPP聊天API發送消息PHP
- 24. 尋找與其他玩家出場兩次玩過的玩家
- 25. 是否有可能發送信息與php聊天?
- 26. 通過Facebook發送信息聊天API(XMPP)C#
- 27. Minecraft聊天信息替換
- 28. 只發送消息給一個聊天室
- 29. TCP/IP聊天程序給我發送混合消息
- 30. Telegram Bot with Telegraf.js - 發送消息給聊天
如果您的工作可能會接受其中一個答案... – emreoktem