Отправка данных другим игрокам - Game Center - PullRequest
1 голос
/ 30 декабря 2010

Я занимаюсь разработкой простой многопользовательской игры для игрового центра. Мне удалось почти все, кроме отправки сообщений игрокам. что я имею в виду, я могу пригласить игрока в игру, игра начинается и т. д.

в отношении документации Apple, я использую следующий метод для отправки данных, но он 'не работает вообще.

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 голосов
/ 15 ноября 2011

Я не вижу здесь ничего плохого, я использую этот код:

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

и все работает

0 голосов
/ 30 декабря 2010

Должен признаться, я пока не использовал биты и кусочки GameCenter, но в качестве общего подхода я бы подумал, что вы, возможно, захотите увидеть, если какие-либо ошибки генерируются. Таким образом, если вы используете что-то вроде ...

NSError *transmissionError;

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

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

... вы можете понять, что происходит не так.

Между прочим, я в настоящее время не нахожусь в компиляторе, поэтому извиняюсь за любые опечатки в вышеупомянутом. : -)

...