是否可以通过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. iOS开发:如何自动匹配Game Center中的玩家?
- 3. 如何将聊天机器人的聊天信息发送给客户?
- 4. 发送推送通知给发布聊天组中的其他用户quickblox
- 5. 当用户正在打字(聊天)时发送信息?
- 6. 发送聊天消息
- 7. 检索文字/聊天信息?
- 8. 发送消息给其他用户
- 9. YouTube发送实时聊天信息不起作用
- 10. 阻止玩家发送垃圾信息导致故障
- 11. Laravel聊天消息。保存图像发送聊天?
- 12. GameKit:向其他玩家发送可靠的NSData?
- 13. Facebook XMPP聊天API发送消息PHP
- 14. 是否有可能发送信息与php聊天?
- 15. Minecraft聊天信息替换
- 16. 只发送消息给一个聊天室
- 17. TCP/IP聊天程序给我发送混合消息
- 18. Telegram Bot with Telegraf.js - 发送消息给聊天
- 19. Apple Game Center api
- 20. Game Center InviteFailed
- 21. Game Center facebook like
- 22. iOS Game Center Group
- 23. Game Center Mutliplayer
- 24. Game Center vs OpenFeint
- 25. 白人球员玩家到玩家在儿童游戏中聊天
- 26. 玩家无法同时从多个设备登录Game Center,请更正?
- 27. 如何将用户发送到Game Center应用程序?
- 28. 当任何玩家发帖时,向每个玩家返回个人信息
- 29. 如何将包含字符串的消息结构作为NSData发送给Game Center
- 30. 实现发送文件在facebook聊天像facebook聊天
如果您的工作可能会接受其中一个答案... – emreoktem