2016-01-27 2 views
0

Je fais realtime multiplayer game en cocos 2d-x pour iOS. Selon mon flux je fais les choses suivantes avec l'aide de ce lien iOS Game Center GameKit Programmatic Invite Matchmaking:Centre de jeu didChangeState et didReceiveData du lecteur distant RemoteRayer n'appelle pas ios 8 & ios 9

Étape 1: Authentifier votre lecteur

Étape 2: juste après authentification défini inviteHandler.

Étape 3: Obtenez votre liste de playerIds ami (pas d'alias)

Étape 4: Quatrième, votre configuration GKMatchRequest quelque chose comme ça ... J'invite tous les amis.

Étape 5: Cinquièmement, utilisez la demande pour appeler findMatchForRequest:withCompletionHandler. Sixièmement, cela envoie la demande à l'autre joueur et, s'ils acceptent, le «inviteHandler» de la deuxième étape est appelé.

Étape 7: Septièmement, le "inviteHandler" de la deuxième étape obtient la correspondance pour le GKInvite! Huitième, le "inviteeResponseHandler" de la quatrième étape est appelé, ce qui termine la correspondance!

Jusqu'à ce que mon code fonctionne bien après cela. 3 étapes après que ces étapes ne fonctionnent pas peuvent s'il vous plaît quelqu'un m'aider?

Étape 9: Neuvième, créer un didChangeState de GKMatchDelegate pour gérer la finalisation du match.

Etape 10: Envoyer un message

Étape 11: Onzième, créer un didReceiveData de GKMatchDelegate.

[_match sendData:data toPlayers:_currentFriends dataMode:GKMatchSendDataUnreliable error:&error]; 

[_match sendData:data toPlayers:_currentFriends withDataMode:GKMatchSendDataReliable error:&error]; 

[_match sendDataToAllPlayers:data withDataMode:GKMatchSendDataUnreliable error:&error]; 

Et sa méthode déléguée est:

- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID { 
NSLog(@"Received Data"); 
[_delegate match:match didReceiveData:data fromPlayer:playerID]; 
} 

J'ai aussi essayé:

- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromRemotePlayer:(GKPlayer *)player 
{ 
    NSLog(@"received DAta"); 
} 
+0

Lorsque vous utilisez invite l'événement "didChangeState" n'est pas appelé. Vérifiez ceci: - http://stackoverflow.com/questions/4337481/game-center-multiplayer-using-gkmatch-but-seems-cant-be-connected – Vizllx

+0

@Vizllx mais mes données ne reçoivent pas non plus de l'autre côté comment résoudre cela? –

Répondre