EDYCJA: Zrobiłem czysty, nowy projekt, ale nadal nie mogę go uruchomić. Pobierz go, jest mały kod do obejrzenia i prawdopodobnie łatwy dla profesjonalisty lub kogokolwiek, kto zdalnie doświadcza, aby zobaczyć, co robię źle. Próbuję wysłać tę liczbę całkowitą.Game Center - Wysyłanie i odbieranie danych
http://www.2shared.com/file/fPOCLlg5/gkTest.html
Hi
Próbuję zaimplementować Centrum gier multiplayer w moim iPhone gry i kłopoty zrozumienia próbki mam pod ręką w Apple Docs i od stron trzecich dotyczących wysyłania i odbierania danych.
Może ktoś proszę wyjaśnić próbki kodu w Oficjalnych docs firmy Apple tu proszę: http://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/GameKit_Guide/MatchesandVoice/MatchesandVoice.html#//apple_ref/doc/uid/TP40008304-CH10-SW4
Albo mi pomóc dowiedzieć się ten przykładowy kod I został dostarczony wraz. Jego Montowane klasy, wykonane obsługiwać wszystkie gry zadania Center oraz próbki z nim przez wysyłanie i odbieranie danych byłoby to:
- (void) sendPosition
{
NSError *error;
PositionPacket msg;
msg.messageKind = PositionMessage;
msg.x = currentPosition.x;
msg.y = currentPosition.y;
NSData *packet = [NSData dataWithBytes:&msg length:sizeof(PositionPacket)];
[match sendDataToAllPlayers: packet withDataMode: GKMatchSendDataUnreliable error:&error];
if (error != nil)
{
// handle the error
}
}
i odbierania:
- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID
{
Packet *p = (Packet*)[data bytes];
if (p.messageKind == PositionMessage)
// handle a position message.
}
Moje wielkie pytanie o kodzie oficjalny dokument to:
Skąd pochodzi PositionPacket
/Packet
? I zakładając, gdy chcesz wysyłać/odbierać dane nazwać je tak:
[self sendPosition];
lub
[self match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID];
Co mam wpisać w tym meczu, danych i playerID?
E.g. Mam int nazwany "score", ale czy nie ma specjalnego klucza, którego potrzebuję użyć coś?
To świetnie, wielkie dzięki! Mają o wiele więcej sensu, chociaż tak jak w przypadku "meczu" jest to tylko nowy GKMatch, który mogę zadeklarować, czy też musi pochodzić z określonego miejsca? –
W przypadku tej metody mecz zostanie przekazany użytkownikowi. Podejrzewam, że w tym prostym przypadku (tj. Tylko jedna gra dzieje się w tym samym czasie), że nie musisz się o to martwić/robić nic w tych metodach. Jeśli szukasz więcej informacji o meczach w ogóle, pochodzą one z usługi Matchmaking. Szczegóły tutaj: http://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/GameKit_Guide/MatchesandVoice/MatchesandVoice.html#//apple_ref/doc/uid/TP40008304-CH10-SW9 – ipmcc
Rozumiem, że otrzymane metoda danych daje nam "dopasowanie" GKMatch, ale skąd pochodzi metoda 'match' w metodzie sendScore? –