是否可以通过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