【发布时间】:2013-07-08 18:50:49
【问题描述】:
我正在开发一款使用 Game Center 的 iOS 多人游戏。
当用户登录 Game Center 并点击“立即玩”时,GC 连接 4 名玩家并开始游戏。问题是游戏经常因为一些数据丢失而死机(我认为这是原因)。游戏通常可以正常运行,但有时服务器发送的数据(服务器是一些玩家)会丢失并且游戏冻结。
我使用这个函数来发送数据:
- (void)sendDataNSData *)data {
NSError *error;
BOOL success = [[GCHelper sharedInstance].match sendDataToAllPlayers:data withDataMode:GKMatchSendDataReliable errorerror];
if (!success) {
//NSLog(@"Error sending init packet");
[self matchEnded];
}
}
问题是 matchend 没有被调用,所以我相信数据已发送但它丢失了。
有没有人有类似的问题并知道如何解决?
【问题讨论】:
-
错误参数呢?
-
@Mert - 没有错误。有时客户端在没有警告的情况下不会收到数据包。
-
你用模拟器还是idevice? Game Center api 在模拟器上无法正常工作。
-
@Mert - 我正在使用真实设备。
-
如果通过 UDP 发送,可能会丢失数据包。您可能需要在 GC 之上构建自己的确认协议?
标签: iphone game-center