1

我正在开发一个简单的游戏中心多人游戏。除了向玩家发送消息外,我几乎管理了所有事情。我的意思是,我可以邀请玩家玩游戏,游戏开始等。

关于苹果文档,我正在使用以下方法发送数据,但它根本不起作用。

const char *bytes = "123";  
NSData *packet = [NSData dataWithBytes:&bytes length:3];
[myMatch sendDataToAllPlayers: packet withDataMode: GKMatchSendDataUnreliable error:nil];

如果可能的话,一个工作样本会很棒。非常感谢。

我做的差不多。

NSError *errorTransmit; 
const char *bytes = "asd";  
NSData *packet = [NSData dataWithBytes:&bytes length:3];
[myMatch sendDataToAllPlayers: packet withDataMode: GKMatchSendDataUnreliable error:&errorTransmit];    
if (errorTransmit != nil)

    NSLog(@"Error sending data to peers: %@", [errorTransmit localizedDescription]);
}

但是当代码到达 NSLog(@"发送数据给对等节点时出错:%@", [errorTransmit localDescription]); 我收到程序接收信号:“EXC_BAD_ACCESS”。这就是为什么我看不到发生了什么。

4

2 回答 2

0

必须承认我还没有使用 GameCenter 的零碎,但作为一般方法,我认为您可能想查看是否生成了任何错误。因此,如果您使用类似...

NSError *transmissionError;

[myMatch sendDataToAllPlayers: packet
                 withDataMode: GKMatchSendDataUnreliable
                        error: &transmissionError];

if(transmissionError != nil) {
   NSLog(@"Transmission error: %@", transmissionError);
}

...您可能会知道出了什么问题。

顺便说一句,我目前远离编译器,因此对上述任何错别字表示歉意。:-)

于 2010-12-30T16:47:18.840 回答
0

我在这里看不到任何问题,我正在使用以下代码:

NSData *data = nil;
NSError *error = nil;
int packet = 777;
data = [[NSData alloc] initWithBytes:&packet length:sizeof(int)];
[self.mMatch sendDataToAllPlayers:data withDataMode:GKMatchSendDataReliable: &error];

它有效

于 2011-11-15T15:52:32.060 回答