将数据发送给其他玩家 - 游戏中心

时间:2010-12-30 16:41:28

标签: ios4 nsdata gamekit game-center

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

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

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 localizedDescription]); 我收到程序收到的信号:“EXC_BAD_ACCESS”。 这就是为什么我看不出发生了什么。

2 个答案:

答案 0 :(得分:0)

必须承认我还没有使用GameCenter的零碎,但作为一种通用的方法,我认为你可能想看看是否有任何错误产生。因此,如果你使用像...这样的东西。

NSError *transmissionError;

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

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

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

顺便说一句,我现在远离编译器,所以对上面的任何拼写错误道歉。 : - )

答案 1 :(得分: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];

并且有效